public class Test{
public static int a;
private Test(){
a=30;
}
public static void main(String[] args){
Test t1=new Test();
t1.a=10;
Test t2=new Test();
System.out.println(t1.a);
System.out.println(t2.a);
System.out.println(Test.a);
}
}
这个输出的结果为为什么是3个30而没有用到t1.a=10;
public static int a;
private Test(){
a=30;
}
public static void main(String[] args){
Test t1=new Test();
t1.a=10;
Test t2=new Test();
System.out.println(t1.a);
System.out.println(t2.a);
System.out.println(Test.a);
}
}
这个输出的结果为为什么是3个30而没有用到t1.a=10;
楼主【Mengmengenator】截止到2008-06-26 18:22:24的历史汇总数据(不包括此帖):
发帖数:1 发帖分:10
结贴数:0 结贴分:0
未结数:1 未结分:10
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
在Test t2=new Test(); 的时候,调用构造方法把 a 赋值为30
所以打印3个30
t1.a=10;
Test t2=new Test(); t2的时候,又运行了 a= 30;
类变量,所有实例就一个值
t1.a=10;
System.out.println(t1.a);
Test t2=new Test();
System.out.println(t2.a);
System.out.println(Test.a);
就会见到1个10和2个30.哪两个30是构造函数Test t2=new Test(); 给的。
欢迎访问:www.xinshuguang.org有Java视频,还不全,正在创建....
t1.a=10;//此时a=10
Test t2=new Test();//创建了一个新对象,用到了构造函数此时a=30,也就是这是最后一次对a赋值,最后a=30,
//所以出现了你说的结果 System.out.println(t1.a);
System.out.println(t2.a);
System.out.println(Test.a);
public static int a;
private Test(){
a=30;
}
public static void main(String[] args){
Test t1=new Test();
t1.a=10; 此时a为10
Test t2=new Test(); 调用了test()构造函数,所以下面都是30
System.out.println(t1.a);
System.out.println(t2.a);
System.out.println(Test.a);
}
}