public class Dog { public String name; public String says; public static void main(String[] args) { Dog d1 = new Dog(); d1.name = "spot"; d1.says = "Ruff!"; Dog d2 = new Dog(); d2.name = "scruffy"; d2.says = "Wurf!"; System.out.println("第1隻狗叫" + d1.name + ";而且他說:" + d1.says); System.out.println("第2隻狗叫" + d2.name + ";而且他說:" + d2.says); System.out.println("----------"); System.out.println("把第2隻狗的名字指定給第1隻狗"); d1.name = d2.name; System.out.println("第1隻狗叫" +d1.name); System.out.println("第2隻狗叫" +d2.name); System.out.println("兩隻狗物件的位置是否相同:" +(d1 == d2)); System.out.println("兩隻狗名字的位置是否相同:"+(d1.name == d2.name)); System.out.println("兩隻狗名字的內容是否相同:"+(d1.name).equals(d2.name)); System.out.println("兩隻狗說話的內容是否相同:"+(d1.says).equals(d2.says)); System.out.println("--------------------------"); System.out.println("把第2隻狗整個物件指定給第1隻狗"); d1 = d2; System.out.println("第1隻狗叫" +d1.name); System.out.println("第2隻狗叫" +d2.name); System.out.println("兩隻狗物件的位置是否相同:" +(d1 == d2)); System.out.println("兩隻狗名字的位置是否相同:"+(d1.name == d2.name)); System.out.println("兩隻狗名字的內容是否相同:"+(d1.name).equals(d2.name)); System.out.println("兩隻狗說話的內容是否相同:"+(d1.says).equals(d2.says)); } }------------- code ends ------------------ 雖然java傳值的方式是pass-by-value,對於基本型別來說容易理解,對於類別型別來說感覺上卻是pass-by-references。 不過我們可以這樣理解:java物件的pass-by-value是指記憶體的參考位置的值,所以傳遞的是reference的位置的值。很多程式設計師都說java的pass-by-value是強詞奪理,不過我們就聽聽吧!
2009年2月12日 星期四
Java小練習(16)--關於字串
題目要求:
撰寫一個名為Dog的class,並使其含有兩個公開的String : name以及says。在main()中分產生兩個Dog的物件,並將其命名為"spot",says值為"Ruff!"、以及"scruff",says值為"Wuff!"。印出他們的name以及says。
接著產生Dog的reference並且將他指派到表示spot的物件,分別使用"=="以及".equels()"來比降所有的reference。
------------- code starts ------------------
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言