本篇內(nèi)容主要講解“Object類、Equals方法、toString方法、包裝類和Junit怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Object類、Equals方法、toString方法、包裝類和Junit怎么用”吧!
在西陵等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站制作,西陵網(wǎng)站建設(shè)費(fèi)用合理。
java.lang,Object類
1.Object類是所有java類的根父類
2.如果在類的聲明中未使用extends關(guān)鍵字指明其父類,則默認(rèn)父類為 java.lang.Object類
Object中的功能(屬性、方法)就具有通用性;
4.Object類只聲明一個(gè)空參構(gòu)造器
Equals:
面試題: == 和 equals()的區(qū)別
==:運(yùn)算符,可以使用基本數(shù)據(jù)類型變量和引用數(shù)據(jù)變量中;
如果比較的是基本數(shù)據(jù)變量,比較兩個(gè)變量報(bào)錯(cuò)的數(shù)據(jù)是否相等(不一定類型要相同);
如果比較的是引用數(shù)據(jù)類型變量,比較的是地址值,即兩個(gè)引用是否指向同一個(gè)對(duì)象實(shí)體;
equals:
是方法;而非運(yùn)算符,通過對(duì)象來調(diào)用;
object類中對(duì)equals()的定義 與 “==” 作用是相同的;比較兩個(gè)對(duì)象的地址值是否相同,即啷個(gè)引用是否指向同一個(gè)實(shí)體;
像String ,Date File 包裝類等都重寫了Object類中的equals()方法,重寫以后,比較的不是兩個(gè)引用的地址值是否相同,
而是比較兩個(gè)對(duì)象的“實(shí)體內(nèi)容”。
通常情況下,我們自定義的類如果使用equals()的話,也通常比較兩個(gè)對(duì)象的“實(shí)體內(nèi)容”是否相同,那么我們就需要對(duì)Object類中的
equals()進(jìn)行重寫;
以下手動(dòng)重寫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("學(xué)習(xí)。。。"); 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();//調(diào)用當(dāng)前的空參構(gòu)造器 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 } //代碼自動(dòng)生成的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.當(dāng)我們輸出一個(gè)對(duì)象的引用是,實(shí)際上調(diào)用的是當(dāng)前對(duì)象的toString();
2.Object的定義:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
3. String Date File 包裝類等都重寫過toString()方法,使得在調(diào)用對(duì)象的實(shí)體時(shí),返回“實(shí)體信息”;
4.自定義類也可以重寫toString()方法,一般默認(rèn)生成即可
5.對(duì)象.toString();如果對(duì)象是null 則報(bào)錯(cuò) 空指針異常;
Junit單元測(cè)試:
Java中的JUnite單元測(cè)試
步驟:1.選中當(dāng)前工程 右鍵選擇bulidpath add libraries -- JUnite 5 - finish;
2.創(chuàng)建Java類,進(jìn)行單元測(cè)試;此類是public 此類提供公共的無參構(gòu)造器
3.此類中聲明單元測(cè)試方法:
權(quán)限是public 沒有返回值 沒有形參;
需要@Test注解,
在單元測(cè)試類中導(dǎo)入 import org.junit.Test
4.聲明好單元測(cè)試方法以后,就可以在方法體內(nèi)測(cè)試相關(guān)代碼;
5.寫完代碼以后,左鍵雙擊方法名,右鍵:run as JUnite Test
說明:
1.如果執(zhí)行結(jié)構(gòu)沒有任何異常,綠條
2.如果執(zhí)行結(jié)果出現(xiàn)異常,紅條
包裝類:
包裝類的使用
1.java提供了8種基本數(shù)據(jù)類型對(duì)應(yīng)的包裝類,使得基本數(shù)據(jù)類型的變量具有類的特征;
2.基本數(shù)據(jù)類型 包裝類 string 三者之間的轉(zhuǎn)換;
1 //基本數(shù)據(jù)類型 --》 包裝類:調(diào)用包裝類的構(gòu)造器 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 //包裝類--》 基本數(shù)據(jù)類型 :調(diào)用包裝類的 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 //自動(dòng)裝箱 與 自動(dòng)拆箱 26 @Test 27 public void test3() {; 28 int num = 10; 29 Integer in1 = num;//自動(dòng)裝箱 30 int num1 = in1;//自動(dòng)拆箱; 31 method(num); 32 } 33 //基本數(shù)據(jù)類型 包裝類 --》String; 調(diào)用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--》基本數(shù)據(jù)類型 包裝類; 包裝類的parseXXX(); 44 @Test 45 public void test5() { 46 String str = "123"; 47 //可能會(huì)出現(xiàn) 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
到此,相信大家對(duì)“Object類、Equals方法、toString方法、包裝類和Junit怎么用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
文章題目:Object類、Equals方法、toString方法、包裝類和Junit怎么用
鏈接地址:http://muchs.cn/article0/ihipoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃、App開發(fā)、品牌網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)