object类中的方法-----Clone()

Clone():

protected Object clone()
                throws CloneNotSupportedException

返回的是一个object类型的对象,所以在定义函数时函数的返回值类型应该定义为object类型。

Object类本身不实现接口 Cloneable,所以在类为 Object的对象上调用 clone方法将会导致在运行时抛出异常。

package com.object;

publicclass Demo1 {

    /**

     * @param args

     */

    publicstaticvoid main(String[] args) {

       // TODOAuto-generated method stub

       Person p = new Person("tom",22);

       Object p1 = p.show();//多态创建对象。P是子类对象,p1是父类引用。

       System.out.println(p1);//输出的结果是对象的信息(com.object.Person@15db9742

Person p2 = (Person)p.show();//强转,调用子类的属性

       System.out.println(p2.name);//输出的结果是:tom 

}

}

 

package com.object;

publicclass Person implements Cloneable {

    String name;

    intage;

    Person(){    

    }

    Person(String name,int age){//有参构造方法

       this.name = name;

       this.age = age;     

    }

    public Objectshow(){//因为show方法中使用了clone方法,而clone方法的返回值是object类型,所以show方法的返回值类型也是object。

       try {

           Object p1 = this.clone();//this指代当前调用对象,谁调用的,就把谁clone一份,复制给一个新的对象,这个新的对象的类型是object。即地址是不同的。相当于是两个对象,但是他们的name,age都是相同的。

           return p1;

       } catch (CloneNotSupportedException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

       }

       returnnull;

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QYHuiiQ

听说打赏的人工资翻倍~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值