站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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里面的变量赋值?


对极了



↑返回目录
前一篇: 关于在FOR循环里变量定义
后一篇: 安装了jdk,但是使用的时候提示找不到软件包Java.awt和Java.applet