从父类克隆对象与Clone方法 : 克隆 « 类定义 « Java 教程

En
Java 教程
1. 语言基础
2. 数据类型
3. 操作符
4. 流程控制
5. 类定义
6. 开发相关
7. 反射
8. 正则表达式
9. 集合
10. 线
11. 文件
12. 泛型
13. 本土化
14. Swing
15. Swing事件
16. 二维图形
17. SWT
18. SWT 二维图形
19. 网络
20. 数据库
21. Hibernate
22. JPA
23. JSP
24. JSTL
25. Servlet
26. Web服务SOA
27. EJB3
28. Spring
29. PDF
30. 电子邮件
31. 基于J2ME
32. J2EE应用
33. XML
34. 设计模式
35. 日志
36. 安全
37. Apache工具
38. 蚂蚁编译
39. JUnit单元测试
Java
Java 教程 » 类定义 » 克隆 
5. 18. 11. 从父类克隆对象与Clone方法
public class Main {
  public static void main(String[] args) {
    try {
      Employee e = new Employee("Dolly"1000);
      System.out.println(e);
      System.out.println("The employee's name is " + e.getName());
      System.out.println("The employees's pay is " + e.getSalary());

      Employee eClone = (Employeee.clone();
      System.out.println(eClone);
      System.out.println("The clone's name is " + eClone.getName());
      System.out.println("The clones's pay is " + eClone.getSalary());
      eClone.setName("Polly");
      eClone.setSalary(2000);

      System.out.println("The employee's name is " + e.getName());
      System.out.println("The employees's pay is " + e.getSalary());

      System.out.println("The clone's name is " + eClone.getName());
      System.out.println("The clones's pay is " + eClone.getSalary());
    catch (Exception e) {
      System.out.println("Exception " + e);
    }

  }
}

class Employee implements Cloneable {

  private StringBuffer name;

  private int salary;

  public Employee(String name, int salary) {
    this.name = new StringBuffer(name);
    this.salary = salary;
  }

  public Employee() {
  }

  public Object clone() throws CloneNotSupportedException {
    try {
      return super.clone();
    catch (CloneNotSupportedException cnse) {
      System.out.println("CloneNotSupportedException thrown " + cnse);
      throw new CloneNotSupportedException();
    }
  }

  public String getName() {
    return name.toString();
  }

  public void setName(String name) {
    this.name.delete(0this.name.length());
    this.name.append(name);
  }

  public void setSalary(int salary) {
    this.salary = salary;
  }

  public int getSalary() {
    return this.salary;
  }
}
5. 18. 克隆
5. 18. 1. 克隆方法。
5. 18. 2. 覆写克隆方法。
5. 18. 3. 复制对象实现Cloneable
5. 18. 4. 构建克隆的对象
5. 18. 5. construct clone of an object and call constructor in the super class
5. 18. 6. 公共对象克隆CloneNotSupportedException
5. 18. 7. 转换后的克隆
5. 18. 8. 浅拷贝然后深拷贝
5. 18. 9. 利用序列进行深拷贝克隆。
5. 18. 10. 在克隆操作操控性能
5. 18. 11. 从父类克隆对象与Clone方法
5. 18. 12. 数组自动cloneable
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.