鱼跃于渊

First know how, Second know why !
posts - 0, comments - 1, trackbacks - 0, articles - 49

详细讲述Java中的克隆

Posted on 2008-09-20 09:01 鱼跃于渊 阅读(120) 评论(0)  编辑  收藏 所属分类: 精品网摘

[摘要] 经常听到有人说java中没有指针。事实如此吗?no,java是有指针的,只不过换了个名字而已,也就是我们经常提到的引用。
[关键字]
Java 克隆
  经常听到有人说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() = 我是真的


只有注册用户登录后才能发表评论。


网站导航: