最近在看 《JAVA核心技术 卷1》,看到对象包装器这章时有一句话不明白:
“对象包装器是不可以变的,一旦构造了包装器就不允许改变其中的值了。”
请教下各位大侠,该如何理解这句话,最好是能用一段代码说明,谢谢!!
最近在看 《JAVA核心技术 卷1》,看到对象包装器这章时有一句话不明白:
“对象包装器是不可以变的,一旦构造了包装器就不允许改变其中的值了。”
请教下各位大侠,该如何理解这句话,最好是能用一段代码说明,谢谢!!
举例子使用对象包装器Integer:
Integer a1 = new Integer(1);//使用int基本类型的Integer包装器,创建一个Integer包装器对象a1;
//而这个a1已经创建了,就没办法改变它的值了..因为Integer类没有提供这样的方法;
a1 = new Integer(2);//现在a1是2,也许你会问,现在a1的值不是改变了么,为什么说不能改变呢?
//其实,原先a1包装器对象的值是没有改变的,现在的a1是2,是因为a1现在又指向一个新的Integer包装器
//new Integer(2)就是a1新指向的那个包装器..
//所以说,当初a1被创建,它的值就不能改变了,但可以再让他指向其他的包装器,明白么?
-------------------------------------------------
再举例子有个类Person:
public class Person{
private String name;
public Person(){}
public Person(String name){
this.name = name;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public String toString(){
return "My name is "+this.name;
}
}
比如这个Person类,创建对象后就是可以百变值的,例如:
Person p = Person("Sambow");//创建一个Person类,初始化其name值为Sambow;
System.out.println(p);
p.setName("SambowKings");//又改变了p的值,现在是SambowKings;
System.out.println(p);
//这和上面Integer的例子很明显不同..你仔细看,应该能看懂其中的意思;