从不耐烦的Core Java中:
变量只能保存对对象的引用...
我像这样尝试,它似乎可以工作:
public class Person{
public String m_name;
public int m_age;
Person (final String name, final int age){
m_name = name;
m_age = age;
}
public static void main(String[] args){
Person a = new Person("John", 45);
Person b = a;
System.out.printf("Person a is %s, aged %d\n", a.m_name, a.m_age);
System.out.printf("Person b is %s, aged %d\n", b.m_name, b.m_age);
a.m_name = "Bob";
System.out.printf("Person a is now %s, aged %d\n", a.m_name, a.m_age);
System.out.printf("Person b is now %s, aged %d\n", b.m_name, b.m_age);
}
}
/*Output:
Person a is John, aged 45
Person b is John, aged 45
Person a is now Bob, aged 45
Person b is now Bob, aged 45*/
但是,它似乎不仅仅适用于String对象或基本类型(尽管,从类实例的意义上讲,后者并不是对象):
String aS = "John";
String bS = aS;
aS = "Bob";
System.out.println(aS + '\n' + bS);
/*Output:
Bob
John*/
int a = 10;
int b = a;
a = 5;
System.out.printf("a = %d, b = %d", a, b);
/*Output:
a = 5, b = 10*/
我想知道为什么要这样二分法吗?谢谢
ps:Person类的属性是公共的,以避免此简单示例的更改器,访问器
跃然一笑
相关分类