9.下面代码存在什么问题?
public class MyClass {
public static void main(String arguments[]) {
amethod(arguments);
}
public void amethod(String[] arguments){
System.out.println(arguments);
System.out.println(arguments[1]);
}
}
A. 错误,void amethod()不是static类型
B. 错误,main()方法不正确
C. 错误,数组必须导入参数
D. 方法amethod()必须用String类型描述
java基础面试题-中级20题答案解析版
正确答案是:A
main方法是比较特殊的方法,正是因为main的特殊导致其不能直接调用本类的其他非静态方法,如果想调用本类其他非静态方法,则需要创建一个本类对象,对象点方法进行调用。 本类非main方法可以直接调用其他非main方法
总结如下:
main方法调用:
本类非静态:创建本类对象,对象点方法调用
本类静态:直接方法名调用
普通方法调用:
本类非静态:直接方法名调用
本类静态:直接方法名调用
如图(代码附后):
package com.songxinfeng;
public class Test {
public static void main(String arguments[]){
Test test=new Test();
test.amethod(arguments);//main通过创建本类对象进行调用
amethod(arguments);//main直接调用本类其他非静态方法
amethod2(arguments);//main直接调用本类静态方法
}
public void amethod(String[] arguments){
System.out.println(arguments);
System.out.println(arguments[1]);
}
public static void amethod2(String[] arguments){
System.out.println(arguments);
System.out.println(arguments[1]);
}
public void amethod3(String[] arguments){
amethod(arguments);//普通方法 直接调用本类其他非静态方法
amethod2(arguments);//普通方法 直接调用本类静态方法
}
}