Java原型设计模式(Prototype)

发表于:2014-3-20 10:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:YJian2008    来源:51Testing软件测试网采编

分享:
public static void main(String[] args) {
Professor professor = new Professor("beijing", 12.0);
Student s1 = new Student("zhangsan", 18, professor);
Student s2 = (Student) s1.clone();
System.out.println(s1);
System.out.println(s2);
System.out.println("**************************************");
s2.name = "lisi";
s2.age = 20;
s2.professor.setAddress("shanghai");
s2.professor.setSalary(230.0);
System.out.println(s1);
System.out.println(s2);
}
}
Student [name=zhangsan, age=18, Professor=Professor [address=beijing, salary=12.0]]
Student [name=zhangsan, age=18, Professor=Professor [address=beijing, salary=12.0]]
**************************************
Student [name=zhangsan, age=18, Professor=Professor [address=shanghai, salary=230.0]]
Student [name=lisi, age=20, Professor=Professor [address=shanghai, salary=230.0]]
  深拷贝:
public class Professor2 implements Cloneable {
private String address;
private double salary;
public Professor2(String address, double salary) {
this.address = address;
this.salary = salary;
}
public void setAddress(String address) {
this.address = address;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Professor2 [address=" + address + ", salary=" + salary + "]";
}
@Override
public Object clone() {
Professor2 o = null;
try {
o = (Professor2) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
}
32/3<123>
价值398元的测试课程免费赠送,填问卷领取吧!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2022
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号