这次有两个主题,第一个太简单啦,就是java中变量的命名规则,纯记忆性东西。第二个主题,就是讨论一下对象引用变量的一个注意点。
java的命名规则就说这么多,变量除了注意命名规则之外,还要注意命名规范。
二、对象引用变量的注意之处
基本变量没有这个毛病,通过代码来引入问题。
1 public class Test {2 public static void main(String[] args) {3 int i1 = 10;4 int i2 = i1;5 i1 = 10000;6 System.out.println("i1 = " + i1);7 System.out.println("i2 = " + i2);8 }9 }
预测一下结果吧。OK,如你所料:
在看一段代码,如果预测结果正确,就不要往下看啦。
1 public class Test { 2 public static void main(String[] args) { 3 Test t = new Test(); 4 Test.Dog d1 = t.new Dog(1);//若看不懂,只需看成创建了一个Dog类一个实例变量 5 Test.Dog d2 = d1;//把d1赋值个d2,此时d2的age是不是1? 6 d1.age = 10;//重新为d1的age属性赋值成10 7 //打印结果 8 System.out.println("dog1's age = " + d1.age); 9 System.out.println("dog2's age = " + d2.age);10 }11 12 //为了节省空间能一眼看完,此处写成内部类13 class Dog {14 //为了方便把属性定义为public,实际中最好不要15 public int age;16 public Dog(int age) {17 this.age = age;18 }19 20 }21 }
猜猜结果:
猜对没有,为什么没有更改d2的age,d2的age从1变成了10?
基本变量中存的就是实际值,而对象引用变量中存的是一个能找到实际值得数据(可以看成c语言中的地址),所以,当d1赋值d2时,只是把那个能找到实际对象的数据赋值给了d2,内存中只有一个Dog的实例,d1,d2指向同个变量。
.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" />
原标题:java中变量命名和引用变量的一个坑
关键词:JAVA