SEOIT

          SEO學習

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            6 Posts :: 1 Stories :: 2 Comments :: 0 Trackbacks
          關系運算符==和!=也適用于所有對象,但它們的含義通常會使初涉Java領域的人找不到北。下面是一個例子:

              //: Equivalence.java

              public class Equivalence {

              public static void main(String[] args) {

              Integer n1 = new Integer(47);

              Integer n2 = new Integer(47);

              System.out.println(n1 == n2);

              System.out.println(n1 != n2);

              }

              } ///:~

              其中,表達式System.out.println(n1 == n2)可打印出內部的布爾比較結果。一般人都會認為輸出結果肯定先是true,再是false,因為兩個Integer對象都是相同的。但盡管對象的內容相同,句柄卻是不同的,而==和!=比較的正好就是對象句柄。所以輸出結果實際上先是false,再是true。這自然會使第一次接觸的人感到驚奇。

              若想對比兩個對象的實際內容是否相同,又該如何操作呢?此時,必須使用所有對象都適用的特殊方法equals()。但這個方法不適用于“主類型”,那些類型直接使用==和!=即可。下面舉例說明如何使用:

              //: EqualsMethod.java

              public class EqualsMethod {

              public static void main(String[] args) {

              Integer n1 = new Integer(47);

              Integer n2 = new Integer(47);

              System.out.println(n1.equals(n2));

              }

              } ///:~

              正如我們預計的那樣,此時得到的結果是true。但事情并未到此結束!假設您創建了自己的類,就象下面這樣:

              //: EqualsMethod2.java

              class Value {

              int i;

              }

              public class EqualsMethod2 {

              public static void main(String[] args) {

              Value v1 = new Value();

              Value v2 = new Value();

              v1.i = v2.i = 100;

              System.out.println(v1.equals(v2));

              }

              } ///:~

              此時的結果又變回了false!這是由于equals()的默認行為是比較句柄。所以除非在自己的新類中改變了equals(),否則不可能表現出我們希望的行為。不幸的是,要到第7章才會學習如何改變行為。但要注意equals()的這種行為方式同時或許能夠避免一些“災難”性的事件。

              大多數Java類庫都實現了equals(),所以它實際比較的是對象的內容,而非它們的句柄


          中國IT實驗室

          posted on 2009-11-27 16:07 文化 閱讀(477) 評論(1)  編輯  收藏

          Feedback

          # re: 句柄以及對象的比較java 2009-11-28 21:31 bzp
          恩,equals是很有意義的,需要搞清這個對象equals比較的是什么  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          fag進口軸承 nsk進口軸承 timken進口軸承 二水氯化鈣 天津不銹鋼 天津服裝批發 天津裝修 孕婦裝批發 無水氯化鈣 氯化鈣 自動化 融雪劑 防凍液 無水氯化鈣 二水氯化鈣 安卓手機推薦 氯化鈣價格不銹鋼 不銹鋼 淘寶網女裝
          主站蜘蛛池模板: 巩留县| 昌乐县| 牟定县| 桦川县| 舒城县| 政和县| 玛曲县| 阳新县| 保定市| 松滋市| 邻水| 庄浪县| 师宗县| 曲沃县| 清流县| 柯坪县| 拜城县| 嘉义市| 广平县| 孟连| 和硕县| 贡嘎县| 思茅市| 崇阳县| 龙泉市| 剑河县| 榆社县| 游戏| 罗城| 阳春市| 沈丘县| 安国市| 孟津县| 漠河县| 安塞县| 滨州市| 新营市| 福州市| 文山县| 临猗县| 镇赉县|