详细讲述Java中的克隆

           来源:newsfuyan - CSDNBlog

  经常听到有人说java中没有指针。事实如此吗?no,java是有指针的,只不过换了个名字而已,也就是我们经常提到的引用。我们知道,在java中一切都是对象,那么我们如何操控对象?如何在成千上万的对象中找到我们所需的那个对象呢?又是如何让对象按照我们的意思来完成任务的呢?
 

Object o  =   new  Object();

        这是java中最常见的语句了,在这句话中做了三件事。首先声明一个Object类型的变量o,在内存中为对象划分一块地址new Object(),将声明的变量指向内存中的对象。如此一来,我们就可以通过o来操纵对象了。就好像孩子们玩的遥控飞机,在空中飞行的是飞机,而使它做出优美动作的却是孩子们手中的摇控器。

  “克隆”是如今听到的较多的词汇,听说已经将某只羊克隆了好几份了。但愿这种技术不要在人身上实验。java中也有“克隆”,与现实世界的克隆一样,将一个实际存在的对象拷贝几份。如下:

//     倒霉的羊
public   class  Sheep  implements  Cloneable{
      
private  String name; 
      
      
public   void  setName(String arg) {
             name 
=  arg; 
      }

      
public  String getName() {
             
return  name; 
      }
      
      
public  Object clone()  throws  CloneNotSupportedException {
             
return   super .clone(); 
      }
}

//     克隆
public   class  Main {
      
public   static   void  main(String[] args)  throws  CloneNotSupportedException {
             Sheep sheep 
=   new  Sheep();             //    先得到那只羊的实例
             sheep.setName( " 我是真的 " );           //     给它做个记号
             System.out.println( " sheep.getName() =  "   +  sheep.getName()); 
             Sheep sheepClone 
=  (Sheep)sheep.clone();                   //     开始克隆
             System.out.println( " sheepClone.getName() =  "   +  sheepClone.getName()); 
      }

          

       运行程序结果为:

  sheep.getName() = 我是真的

  sheepClone.getName() = 我是真的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值