不可变类
不可变类
杨润康Bla 发表于2年前
不可变类
  • 发表于 2年前
  • 阅读 1
  • 收藏 0
  • 点赞 2
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

public class Name {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Name(){}
public Name(String firstName,String lastName)
{
this.firstName=firstName;
this.lastName=lastName;
}
}

public class Person {
private final Name name;
public Person(Name name)
{
//this.name=name;
this.name=new Name(name.getFirstName(), name.getLastName());//1
}
public Name getName()
{
//return name;
return new Name(name.getFirstName(), name.getLastName());//2
}
public static void main(String[] args) {
    Name name=new Name("悟空","孙");
    Person per=new Person(name);
    System.out.println(per.getName().getFirstName());
    System.out.println(per.getName().getLastName());
    name.setLastName("八戒");
    //孙 被改成 八戒 ,我们不想让它被改,怎么办? 到相应的构造器和方法中去改,见1和2
    System.out.println(per.getName().getLastName());
}
}

共有 人打赏支持
粉丝 15
博文 76
码字总数 0
×
杨润康Bla
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: