易截截图软件、单文件、免安装、纯绿色、仅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、java基础:
JAVA 开发基础知识 | Eclipse 开发环境 | J2SE 5.0 API | J2SE 6.0新特性 | 多线程技术 | Socket 网络技术 | Regular Expression | Java反射技术 | Properties技术 | 各种实战设计模式Factory系列、Singleton、Strategy、Observer等 | Java Debug技术 | 面向对象设计原则详解 | 实例解决面向对象设计 ......

Java的异常小结

 主要是举个例子说明一下什么用throws,什么时候用try-catch。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Test {
public static void main(String[] ......

java生成静态html的一段代码

       在某些应用中,将本该由动态页面每次获取客户端请求时去调用数据的过程转换为在添加数据时即生成为静态页面,这样对服务器的压力,数据库检索的压力,以及搜索引擎收录,包括防止SQL注入都是有极大的好处的。常见的做法有很多种,包括web服务器启用rewrite,io操作生成文件等等,这里 ......

Thinking In Java Notes

1. 对于一个static方法而言,无法访问泛型类的类型参数,所以,如果static方法需要使用泛型能力,就必须使其成为泛型方法。
2. 当使用泛型类时,必须在创建对象的时候制定类型参数的值,而是用泛型方法的时候,通常不必指定参数类型,因为编译器会为我们找出具体的类型。这称为类型参数推断。 ......

java jsp servlet中的绝对路径与相对路径(转载)

 
1.基本概念的理解
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。
相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
Ser ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号