文档章节

不可变类

杨润康Bla
 杨润康Bla
发布于 2016/05/18 18:04
字数 143
阅读 1
收藏 0
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());
}
}

本文转载自:http://blog.csdn.net/yangrunkangbla/article/details/45134277

共有 人打赏支持
杨润康Bla
粉丝 15
博文 75
码字总数 0
作品 0
合肥
后端工程师

暂无文章

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
4
0
现场看路演了!

HiBlock
昨天
12
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
9
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
14
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部