我可以和如何从Java中的其他方法调用main方法?请使用以下代码解释:
public class arraysAndMethods {
public void printArray(double[] arr) {
int x = public arraysAndMethods.main(int[] studGrades);
// pass array in main mehthod to other methods
//int a=main(args[]);
for (int i = 0; i < studGrades.lenght; i++)
System.out.print(studGrades[i] + " ");
}// end of printArray method
public static void main(String args[]){
java.util.Scanner input = new java.util.Scanner(System.in); // input scanner
System.out.println("What is the size of the class?");
int n = input.nextInt();
double studGrades[] = new double[n];
for (int i = 0; i < studGrades.length;i++) {
System.out.println("What is the grade of student #" + (i+1));
studGrades[i] = input.nextDouble();
} // end of for loop
}// end of main method
}//end of class
编辑后:
除了传递参数外,我已经弄明白了。我是否使用main的返回值?并且由于main的返回值是一个数组,main调用的参数是否应该有括号?这些括号之间应该有值吗?
public class arraysAndMethods {
public void printArray(double[] arr) {
int x = arraysAndMethods.main(double[i] arr);//error with paremeters
for (int i = 0; i < studGrades.lenght; i++)
System.out.print(studGrades[i] + " ");
}// end of printArray method
public static double[] main(String args[]){// double array
java.util.Scanner input = new java.util.Scanner(System.in); // input scanner
System.out.println("What is the size of the class?");
int n = input.nextInt();
double[] arr = new double[n];// declare and initialize array to have n many elements
for (int i = 0; i < arr.length;i++) {// input grades for each students
System.out.println("What is the grade of student #" + (i+1));
arr[i] = input.nextDouble();
} // end of for loop
return arr;
}// end of main method
}// end of class
答案 0 :(得分:1)
从另一种方法调用main方法通常被认为是不好的编程习惯。这可能导致一系列问题,例如无限循环,无限递归等。您的主要方法应该包括程序运行所需的高级功能,您通常希望它尽可能简单。作为一种好的“检查”问我自己可以将这个功能变成自己独立的方法吗?如果是这样,为什么不这样做呢?然后,如果您需要再次拨打该电话,则可以使用单独的方法。
答案 1 :(得分:0)
是的,您可以从另一个方法调用main()方法。我在单元测试期间完成了这项工作,看看它是如何工作的。
由于main是静态方法,因此您需要调用
arraysAndMethods.main(/* parameters here */);
将模拟的“命令行参数”作为参数传入。
仅供参考,开始使用大写字母的类的名称是标准的Java实践。
答案 2 :(得分:0)
可以从另一种方法调用它。在printArray()
(例如)中,您可以执行此操作:
String[] someArgs= new String[] {"monkey"};
arraysAndMethods.main(someArgs);
由于这是一个静态方法,arrayAndMethods
类不必实例化。