关键词搜索

源码搜索 ×
×

(Java)对象克隆技术

发布2020-02-03浏览552次

详情内容

在 Java 中支持对象的克隆操作,直接使用 Object 类中的 clone() 方法即可,方法定义如下:

protected Object clone() throws CloneNotSupportedException

    以上方法是受保护的类型,所以在子类中必须覆写此方法,而且覆写之后应该扩大访问权限,这样才能被外部调用,但是具体的克隆方法的实现还是在 Object 中,所以在覆写的方法中只需要调用 Object 类中的 clone() 方法即可完成操作,而且在对象所在的类中必须实现Cloneable 接口才可以完成对象的克隆操作。

    Cloneable 接口实际上是一种标识接口,表示对象可以被克隆

    class Person implements Cloneable{
        //必须实现 Cloneable 接口
        private String name = null;
        public Person(String name){
            this.name = name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
        //需要子类覆写 clone() 方法
        public Object clone() throws CloneNotSupportedException{
            return super.clone();//具体的克隆操作由父类完成
        }
        public String toString(){
            return "姓名:" + this.getName();
        }
    }
    
    public class Test{
        public static void main(String[] args) {
            Person p1 = new Person("Java");
            try {
                Person p2 = (Person) p1.clone();
                p2.setName("Python");
                System.out.println("原始对象:" + p1);
                System.out.println("克隆之后的对象:" + p2);
            }catch (CloneNotSupportedException e){
                e.printStackTrace();
            }
        }
    }
    
      2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    在这里插入图片描述

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载