当前位置: 技术问答>java相关
scjp真题的问题!
来源: 互联网 发布时间:2015-03-14
本文导语: 小弟有两个问题讨教!谢谢! class C1{ static int j=0; public void method(int a){ j++; } } class Test extends C1{ public int method(){ return j++; } public void result(){ method(j); System.out.println(j+method()); } public static void main(Str...
小弟有两个问题讨教!谢谢!
class C1{
static int j=0;
public void method(int a){
j++;
}
}
class Test extends C1{
public int method(){
return j++;
}
public void result(){
method(j);
System.out.println(j+method());
}
public static void main(String args[]){
new Test().result();
}
}
问题1:当该文件以C1.java为文件名时,编译通过,但运行时出现:NoSuchMethodError:main
若以Test.java为文件名时则编译运行都通过。这其中的有什么规则吗?
问题2:运行通过后,结果为2,为什么不是3呢?
class C1{
static int j=0;
public void method(int a){
j++;
}
}
class Test extends C1{
public int method(){
return j++;
}
public void result(){
method(j);
System.out.println(j+method());
}
public static void main(String args[]){
new Test().result();
}
}
问题1:当该文件以C1.java为文件名时,编译通过,但运行时出现:NoSuchMethodError:main
若以Test.java为文件名时则编译运行都通过。这其中的有什么规则吗?
问题2:运行通过后,结果为2,为什么不是3呢?
|
1. java程序在运行时(Applet除外)会首先查找程序入口,即在与程序文件同名的类中查找下面
的函数:
public static void main(String[] args)
在类C1中找不到main函数,所以运行出错。
2. 首先注意j是静态变量,new Test().result();所作的工作是:
A. method(j);//j=1;
B. System.out.println(j+method());//按从左至右的顺序j=1,method()返回j++,即2
//打印1+2
的函数:
public static void main(String[] args)
在类C1中找不到main函数,所以运行出错。
2. 首先注意j是静态变量,new Test().result();所作的工作是:
A. method(j);//j=1;
B. System.out.println(j+method());//按从左至右的顺序j=1,method()返回j++,即2
//打印1+2