<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    工作小驛

    Ninja!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks

        這是附加教程的第一節,我們來介紹一下 ==和equals()的區別,==是相等,equals()也是相等。這兩個詞的區別是什么呢?這是找工作時很多面試官的問題。我們來解答一下。首先我們看這么個例子。實踐:

        public class TestEquals {

       public static void main(String[] args) {

        MyDate date1 = new MyDate(14, 3, 1976);

        MyDate date2 = new MyDate(14, 3, 1976);

     

        if ( date1 = = date2 ) {

          System.out.println("date1 is identical to date2");

        } else {

          System.out.println("date1 is not identical to date2");

        }

     

        if ( date1.equals(date2) ) {

          System.out.println("date1 is equal to date2");

        } else {

          System.out.println("date1 is not equal to date2");

        }

     

        System.out.println(" date2 = date1;");

        date2 = date1;

     

        if ( date1 == date2 ) {

          System.out.println("date1 is identical to date2");

        } else {

          System.out.println("date1 is not identical to date2");

        }}}

    這個例子中的MyDate類代碼如下

    public class MyDate {

     private int day;

     private int month;

     private int year;

     

     public MyDate(int day, int month, int year) {

        this.day   = day;

        this.month = month;

        this.year = year;

     }

     public boolean equals(Object o) {

       boolean result = false;

        if ( (o != null) && (o instanceof MyDate) ) {

          MyDate d = (MyDate) o;

          if ( (day == d.day) && (month == d.month)

              && (year == d.year) ) {

            result = true;

          }}

        return result;

     }

     public int hashCode() {

        return (day ^ month ^ year);

     }} 上述例子下載

    將這兩個類放置到同一個文件夾中,只需要編譯TestEquals類,就可以將MyDate一同編譯了。然后執行java TestEquals查看結果。如圖28-1所示

    28-1

    也就是說date1 = = date2 雖然都是new MyDate(14, 3, 1976);但是new了兩次就是兩個對象了,不能==了。==是指引用是否相同。

        那么用equals()呢,equals()Object里的方法,任何對象都繼承Object。所以equals()方法也適用于所有的類。為什么這回date1date2equals了呢?equals()是指值是否相等。因為都是(1431976)所以相等。

        我們把date1賦值給date2,結果當然是==了,都已經把引用賦給它了。還能不==嗎?

    posted on 2007-08-09 19:55 王君 閱讀(245) 評論(2)  編輯  收藏 所屬分類: J2SE

    Feedback

    # re: 全新java初學者實踐附加教程1----"=="和equals() 2007-08-13 10:07 javapon
    up  回復  更多評論
      

    # re: 全新java初學者實踐附加教程1----"=="和equals() 2009-04-15 16:02 Jianguo
    請問哪里有全面的《全新java初學者實踐附加教程》?  回復  更多評論
      

    主站蜘蛛池模板: 亚洲AV无码精品蜜桃| 日韩免费在线视频| 青柠影视在线观看免费高清 | 久久精品国产亚洲av麻豆小说 | 国产又黄又爽胸又大免费视频 | 国产成人免费福利网站| 亚洲大尺度无码专区尤物| 免费无毒a网站在线观看| 成人黄页网站免费观看大全| 久久亚洲综合色一区二区三区 | 无码国产精品一区二区免费| 激情综合色五月丁香六月亚洲| 国产v亚洲v天堂a无| 亚洲国产精品免费在线观看| 免费在线观看中文字幕| 亚洲依依成人亚洲社区| 搡女人真爽免费视频大全| 亚洲精品在线电影| 美丽姑娘免费观看在线观看中文版 | 亚洲人成网站在线播放vr| 偷自拍亚洲视频在线观看99| 国语成本人片免费av无码| 亚洲免费网站在线观看| 午夜无遮挡羞羞漫画免费| 亚洲熟妇av午夜无码不卡| 亚洲成A人片在线观看无码3D| 西西人体免费视频| 67194在线午夜亚洲| 亚洲国产精品一区二区第四页| 99免费在线观看视频| 爱爱帝国亚洲一区二区三区| 西西人体44rt高清亚洲 | 大地资源二在线观看免费高清| 亚洲精彩视频在线观看| 中文字幕无码成人免费视频 | 亚洲熟女乱色一区二区三区 | 免费一级毛片在播放视频| 国产三级在线免费| 亚洲精华国产精华精华液网站| 国产又黄又爽又刺激的免费网址| 国产亚洲精品成人久久网站|