首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

小白,JAVA类里面实例化自己

2013-06-19 
小白求助,JAVA类里面实例化自己public class Test01 {public String varpublic Test01(){vara}Test01

小白求助,JAVA类里面实例化自己
public class Test01 {

public String var;

public Test01(){var="a";}
Test01 t1=new Test01();
void p (){System.out.println(var);}
public static void main(String[] args) {
Test01 pp=new Test01();
pp.p();
}

}

一运行就出错
[解决办法]

public class Test01 {

public String var;

public Test01() {
var = "a";
}

//Test01 t1 = new Test01();

void p() {
System.out.println(var);
}

public static void main(String[] args) {
Test01 pp = new Test01();
pp.p();
}
}

注释的这行代码没意义啊
[解决办法]
而且你这样写好像是个死循环
[解决办法]
Test01 t1 = new Test01(); 


靠, 楼主这样的写法是要闹哪样?
[解决办法]
Test01 t1=new Test01();

这表示要声明一个成员属性t1,这个t1又实例化为自身类型,于是,无限循环下去了,形成一个无底洞,最终栈溢出了。
[解决办法]
静态变量在你创造这个类时直接在内存中创建了这个变量.
在需要时直接根据变量名称去内存中查找该变量.
[解决办法]
静态变量只会实例化一次
[解决办法]
jvm 中是由一块静态变量内存啊,
给个传送门,去看看jvm 怎么定义的http://bbs.csdn.net/topics/390251794
感谢java2000_wl
[解决办法]
上面那位用static的方法是因为static在内存中只会生成一次。你原始代码是死循环。但有static只new一次。所以运行正确。。。。

热点排行