程序如下
public class test{ int count=9;
public static void main (String[] args){
new test().change();
new test().change1();
//test t=new test();
//t.change();
//t.change1();
}
public void change()
{
count=10;
System.out.println(count);
}
public void change1()
{
System.out.println(count);
}
}程序运行结果:10,9
如果把注释放开,把两个new注释掉,也就是只new出一个对象t来,然后用t去调用两个方法,那么结果就是10,10
为什么呢?小弟不解的是,这种在方法中将属性值重新赋值的方法,到底有没有改变本身属性的值?
public class test{ int count=9;
public static void main (String[] args){
new test().change();
new test().change1();
//test t=new test();
//t.change();
//t.change1();
}
public void change()
{
count=10;
System.out.println(count);
}
public void change1()
{
System.out.println(count);
}
}程序运行结果:10,9
如果把注释放开,把两个new注释掉,也就是只new出一个对象t来,然后用t去调用两个方法,那么结果就是10,10
为什么呢?小弟不解的是,这种在方法中将属性值重新赋值的方法,到底有没有改变本身属性的值?
注释掉 只用一个的话 就只有一个内存空间 第一个方法会干扰count值
这句话让我恍然大悟。谢谢各位的回答!~
new test().change(); //你这里new了两个对象。。
new test().change1();
//test t=new test(); //这里只创建了一 个对象
//t.change();
//t.change1();