Java 方法中的方法
在Java的主方法中有一个方法在语法上正确吗?比如说Java 方法中的方法,java,methods,Java,Methods,在Java的主方法中有一个方法在语法上正确吗?比如说 class Blastoff { public static void main(String[] args) { //countdown method inside main public static void countdown(int n) { if (n == 0) { System.out.println("Blastoff!")
class Blastoff {
public static void main(String[] args) {
//countdown method inside main
public static void countdown(int n) {
if (n == 0) {
System.out.println("Blastoff!");
} else {
System.out.println(n);
countdown(n - 1);
}
}
}
}
不,不是直接的;然而,一个方法可能包含一个本地内部类,当然,该内部类也可以包含方法。给出了一些例子 然而,在您的情况下,您可能只想从
main
内部调用countdown
;实际上,您不需要将其整个定义放在main
中。例如:
class Blastoff {
public static void main(String[] args) {
countdown(Integer.parseInt(args[0]));
}
private static void countdown(int n) {
if (n == 0) {
System.out.println("Blastoff!");
} else {
System.out.println(n);
countdown(n - 1);
}
}
}
(请注意,我已将
倒计时
声明为私有
,因此只能从启动
类中调用它,我假设这是您的意图?它不是方法内部的方法,这称为递归。是的,你的算法看起来不错。@LuiggiMendoza虽然countdown
是递归的,但它在词汇上也嵌套在main
中。我想问一下我在main方法中有countdown方法的那部分,因为我的编译器说它有一个错误line@LuiggiMendoza这就是问题所在@LuiggiMendoza我没有资格回答Java问题(参见ruakh的答案?我不会想到匿名内部类)。我只有在人们错过问题时才有资格指出;-)是的,这是我的意图,谢谢。我仍然掌握着整个类/方法/对象结构的窍门,倒计时(Integer.parseInt(args[0])到底是什么
line do?@user194007:args
参数到main
是一个命令行参数数组,作为String
实例args[0]
是第一个命令行参数,作为字符串
。将该字符串
解析为以10为基数的整数,并返回一个int
。因此countdown(Integer.parseInt(args[0])
将第一个命令行参数解析为基数为10的整数,并使用它调用countdown
。(试着以javablastoff 10
的形式运行你的程序,你就会明白我的意思了。)