dec201601

Test01


无图


/**
不可变类
1.使用private和final修饰符修饰成员变量
2.构造一个含参构造器,
3.仅为该类提供getter方法,
4.如果有必要,重写obeject类中的 hashcode()和equals()方法

而下面的例子为:
一个不可变类中包含了一个可变的引用类型 (引用:用final修饰后,地址不可变,而内容可变)
所以可以在 不可变类中,单独创建新的引用来指向参数带进来的引用,
(可以理解为,创建一个盒子,来装外来的引用)

*/

class Name{
  private String name;
  public Name(String name){
    this.name=name;
  }
  public void setName(String name){
    this.name=name;
  }
  public String getName(){
    return this.name;
  }
}
public class Test02{
  private final Name name;
  public Test02(Name name){
    //this.name=name   可变的引用
    this.name=new Name(name.getName());//创建新的引用  new Name()
  }
  public Name getName(){
    return name;
  }

  public static void main(String [] args){
    Name n=new Name("孙悟空");
    Test02 person=new Test02(n);
    System.out.println(person.getName().getName());
    n.setName("猪八戒");
    System.out.println(person.getName().getName());
  }
}

*** 清醒小刻 ***
**** 没错,我说的都是错的!!****


咦,你知道吗?
今日啥也没有。。。。
...


你可能感兴趣的:(dec201601)