Posted on 2008-09-20 09:01
魚躍于淵 閱讀(130)
評論(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() = 我是真的