易截截图软件、单文件、免安装、纯绿色、仅160KB

Java的深拷贝和浅拷贝(2)

上一篇文章讲述了浅拷贝和深拷贝的含义,并且给出了浅拷贝的一个例子
这篇文章在那个例子的实现上作出修改,实现深拷贝,代码如下:
package com.test;
public class CloneTest
{
public static void main(String[] args)
{
Student s1 = new Student();
s1.setAge(20);
s1.setName("wudi");
School school = new School();
school.setName("Peiyang University");
school.setBornYear(1895);
s1.setSchool(school);
System.out
.println("s1:" + s1.getName() + " " + s1.getAge() + " "
+ s1.getSchool().getName() + " "
+ s1.getSchool().getBornYear());

try
{
//拷贝一个学生
Student s2 = (Student)s1.clone();
s2.setAge(21);
s2.setName("WUDI");
System.out
.println("s2:" + s2.getName() + " " + s2.getAge() + " "
+ s2.getSchool().getName() + " "
+ s2.getSchool().getBornYear());

System.out.println("after s2 changing some property:");
//通过学生s2改变了他所在学校的名称和成立时间
s2.getSchool().setName("Tianjin University");
s2.getSchool().setBornYear(1951);


System.out
.println("s1:" + s1.getName() + " " + s1.getAge() + " "
+ s1.getSchool().getName() + " "
+ s1.getSchool().getBornYear());
System.out
.println("s2:" + s2.getName() + " " + s2.getAge() + " "
+ s2.getSchool().getName() + " "
+ s2.getSchool().getBornYear());




}
catch (CloneNotSupportedException e)
{
e.printStackTrace();
}
}
}
class School implements Cloneable
{
private String name;
private int bornYear;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getBornYear()
{
return bornYear;
}
public void setBornYear(int bornYear)
{
this.bornYear = bornYear;
}

@Override
protected Object clone() throws CloneNotSupportedException
{
return super.clone();
}
}
class Student implements Cloneable
{
private int age;
private String name;
private S


相关文档:

Java学习书籍推荐

1、JavaSE的学习书籍
英文名:《Thinking in Java》
中文名:《Java编程思想》
图  片:  
作  者:Bruce Eckel
出版社:机械工业出版社
阅读方法:这本书并不适合一点基础都没有的同学进行阅读,强烈建议学的JavaSE。
 然后可以直接学习JavaWEB的内容了,但是如果想备一本书在手边备查的 ......

谈谈IBM2009校园招聘Java笔试题

 只说说几道涉及到我有些遗忘的知识点的题目吧~~
1. 关于final的
一下哪几种声明是正确的?
A: private final int FINAL_INTEGER = 0;
B: private final int FINAL_INTEGER;
{
FINAL_INTEGER = 1;
}
C: private final int FINAL_INTEGER;
static{
FINAL_INTEGER = 1;
}
D: private final int FINA ......

J2EE、Java SE、Java EE、Java ME 区别

 Java SE=Java Standard Edition
Java EE=Java Enterprise Edition
Java ME=Java Mobile Edition
SE主要用于桌面程序,控制台开发(JFC)
EE企业级开发(JSP,EJB)
ME嵌入式开发(手机,小家电) 
         目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Ja ......

java编码转换的详细过程

 常见的JAVA程序包括以下类别:
*直接在console上运行的类(包括可视化界面的类)
*JSP代码类(注:JSP是Servlets类的变型)
*Servelets类
*EJB类
*其它不可以直接运行的支持类
这些类文件中,都有可能含有中文字符串,并且常用前三类JAVA程序和用户直接交互,用于输出和输入字符,如:在JSP和Servlet中得到客户端 ......

Axis2 java WebServices开发三POJO

环境JDK1.5
Eclipse 3.2
直接上代码:如果没有配置好环境请参看前两篇日志
服务器端代码
User类:
/*
*Class User.java
*Create Date: 2009-11-4
*Author:a276202460
*/
package com.axis.pojo.test;
public class User implements java.io.Serializable{
public boolean equals(Object obj) {
if (obj == ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号