• 溫馨提示×

    Object類、Equals方法、toString方法、包裝類和Junit怎么用

    發布時間:2022-10-25 14:04:08 來源:億速云 閱讀:88 作者:iii 欄目:編程語言

    本篇內容主要講解“Object類、Equals方法、toString方法、包裝類和Junit怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Object類、Equals方法、toString方法、包裝類和Junit怎么用”吧!

    java.lang,Object類
    1.Object類是所有java類的根父類
    2.如果在類的聲明中未使用extends關鍵字指明其父類,則默認父類為 java.lang.Object類
    Object中的功能(屬性、方法)就具有通用性;
    4.Object類只聲明一個空參構造器

    Equals:

    面試題: == 和 equals()的區別
              ==:運算符,可以使用基本數據類型變量和引用數據變量中;
                        如果比較的是基本數據變量,比較兩個變量報錯的數據是否相等(不一定類型要相同);
                        如果比較的是引用數據類型變量,比較的是地址值,即兩個引用是否指向同一個對象實體;
              equals:
                      是方法;而非運算符,通過對象來調用;
                      object類中對equals()的定義 與 “==” 作用是相同的;比較兩個對象的地址值是否相同,即啷個引用是否指向同一個實體;
                  像String ,Date File 包裝類等都重寫了Object類中的equals()方法,重寫以后,比較的不是兩個引用的地址值是否相同,
                  而是比較兩個對象的“實體內容”。
              通常情況下,我們自定義的類如果使用equals()的話,也通常比較兩個對象的“實體內容”是否相同,那么我們就需要對Object類中的
              equals()進行重寫;

    以下手動重寫equals方法:

    10 class Person1{
    11     private String name;
    12     private int age;
    13     public String getName() {
    14         return name;
    15     }
    16     public void setName(String name) {
    17         this.name = name;
    18     }
    19     public int getAge() {
    20         return age;
    21     }
    22     public void setAge(int age) {
    23         this.age = age;
    24     }
    25     
    26     public void eat() {
    27         System.out.println("人吃飯。。。。");
    28         study();
    29     }
    30     
    31     public void study() {
    32         System.out.println("學習。。。");
    33     }
    34     public Person1(String name, int age) {
    35         //super();
    36         this(age);
    37         this.name = name;
    38         //this.age = age; //等同于 this("Tome");
    39     }
    40     public Person1() {
    41         super();
    42     }
    43     public Person1(String name) {
    44         this();//調用當前的空參構造器
    45         //super();
    46         this.name = name;
    47         
    48     }
    49     public Person1(int age) {
    50         //super();
    51         this.age = age;
    52     }
    53 //    @Override //手寫部分
    54 //    public boolean equals(Object obj) {
    55 //        if(this == obj) {
    56 //            return true;
    57 //        }else if(obj instanceof Person1) {
    58 //            Person1 p = (Person1)obj;
    59 //            if(name.equals(p.name) && age == p.age) {
    60 //                return true;
    61 //            }else {
    62 //                return false;
    63 //            }
    64 //        }else {
    65 //            return false;
    66 //        }
    67 //    }
    68     @Override
    69     public int hashCode() {
    70         final int prime = 31;
    71         int result = 1;
    72         result = primeresult + age;
    73         result = primeresult + ((name == null) ? 0 : name.hashCode());
    74         return result;
    75     }
    //代碼自動生成的equals
    76     @Override
    77     public boolean equals(Object obj) {
    78         if (this == obj)
    79             return true;
    80         if (obj == null)
    81             return false;
    82         if (getClass() != obj.getClass())
    83             return false;
    84         Person1 other = (Person1) obj;
    85         if (age != other.age)
    86             return false;
    87         if (name == null) {
    88             if (other.name != null)
    89                 return false;
    90         } else if (!name.equals(other.name))
    91             return false;
    92         return true;
    93     }
    94     
    95     
    96
    1     public static void main(String[] args) {
     2         int i = 10;
     3         int j = 10;
     4         double d = 10.0;
     5         char c = 10;
     6         System.out.println(i == j);//true
     7         System.out.println(i == d);//true
     8         System.out.println(c == i);//true
     9         
    10         Person1 person1 = new Person1("Tom", 11);
    11         Person1 person2 = new Person1("Tom", 11);
    12         
    13         
    14         System.out.println(person1 == person2);//false
    15         System.out.println(person1.equals(person2));//false重寫前,重寫后是true;
    16

    toString()方法:

    Object類中tostring()的使用
    1.當我們輸出一個對象的引用是,實際上調用的是當前對象的toString();
    2.Object的定義:
             public String toString() {
                return getClass().getName() + "@" + Integer.toHexString(hashCode());
            }
        3. String Date File 包裝類等都重寫過toString()方法,使得在調用對象的實體時,返回“實體信息”;
        4.自定義類也可以重寫toString()方法,一般默認生成即可
        5.對象.toString();如果對象是null 則報錯 空指針異常;

    Junit單元測試:

    Java中的JUnite單元測試
      步驟:1.選中當前工程 右鍵選擇bulidpath   add libraries -- JUnite 5 - finish;
              2.創建Java類,進行單元測試;此類是public 此類提供公共的無參構造器
              3.此類中聲明單元測試方法:
                  權限是public  沒有返回值  沒有形參;
                  需要@Test注解,
                  在單元測試類中導入 import org.junit.Test
              4.聲明好單元測試方法以后,就可以在方法體內測試相關代碼;
              5.寫完代碼以后,左鍵雙擊方法名,右鍵:run as  JUnite Test
      說明:
      1.如果執行結構沒有任何異常,綠條
      2.如果執行結果出現異常,紅條

    包裝類:

    包裝類的使用
      1.java提供了8種基本數據類型對應的包裝類,使得基本數據類型的變量具有類的特征;
      2.基本數據類型 包裝類 string 三者之間的轉換;

    1 //基本數據類型 --》 包裝類:調用包裝類的構造器
     2     @Test 
     3     public void test1() {
     4         int num1 = 10;
     5         Integer in1 = new Integer(num1);
     6         System.out.println(in1.toString());
     7         Float f1 = new Float(12.3);
     8         Double d1 = new Double(12.3);
     9         Boolean b1 = new Boolean(true);
    10         Boolean b2 = new Boolean("true");
    11         Boolean b3 = new Boolean("true123");
    12         System.out.println(b3);//false
    13     }
    14     //包裝類--》 基本數據類型 :調用包裝類的 xxxValue();
    15     @Test 
    16     public void test2() {
    17         int num1 = 10;
    18         Integer in1 = new Integer(num1);
    19         int num2 = in1.intValue();
    20         System.out.println(num2+1);
    21         Float f1 = new Float(12.3);
    22         float f2 = f1.floatValue();
    23         System.out.println(f2);//false
    24     }
    25     //自動裝箱 與 自動拆箱
    26     @Test 
    27     public void test3() {;
    28         int num = 10;
    29         Integer in1 = num;//自動裝箱
    30         int num1 = in1;//自動拆箱;
    31         method(num);
    32     }
    33     //基本數據類型 包裝類 --》String; 調用String重載的valueOf(Xxx xxx);
    34     @Test 
    35     public void test4() {
    36     //方式一
    37         int num = 10;
    38         String str = num+"";
    39         //方式二
    40         str = String.valueOf(num);
    41         
    42     }
    43     // String--》基本數據類型 包裝類; 包裝類的parseXXX();
    44     @Test 
    45     public void test5() {
    46         String str = "123";
    47         //可能會出現 numberformate 異常
    48         Integer in1 = Integer.parseInt(str);
    49         String str1 = "true";
    50         Boolean b1 = Boolean.parseBoolean(str1);
    51         
    52         
    53     }
    54     public void method(Object obj) {
    55         System.out.println(obj);
    56

    到此,相信大家對“Object類、Equals方法、toString方法、包裝類和Junit怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    主題地圖

    gl她的舌伸湿润腿间双龙头