当前页面: 开发资料首页 → J2SE 专题 → SCJP的一道题目
SCJP的一道题目
摘要: SCJP的一道题目
public class Example{
private int i=giveMe();
private int j=10;
private int giveMe(){
return j;
}
public static void main(String []args){
System.out.println((new Example()).i);
}
}
请问程序的运行过程
输也结果为0
运行过程:初始化i(通过方法giveMe()),初化为j
初化为i时,还没有给j初始化,所以结果为0
1.new Example()
2.giveme()
3.int i=0
4.int j=10
5.println i
楼主,你的程序可以运行??
应该少了创建对象吧?
Example a=new Example()
创建对象后调用giveme()
i此时被初始化为0
j初始为10
然后打印i
new Example()时i和j都是int型所以初始化为0.
之后给i赋值时j还没有赋值.
mark一下啊,我看到的话,肯定会以为输出10的
wwww
也就是说创建一个对象时先用默认值初始化成员变量 然后才执行class里面的变量赋值?
对极了