第三次学JAVA再学不好就吃翔(part45)--Object类
生活随笔
收集整理的這篇文章主要介紹了
第三次学JAVA再学不好就吃翔(part45)--Object类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,僅供參考
文章目錄
- API概述
- Object類
- hashCode()方法
- getClass()方法
- toString()方法
- equals()方法
- ==與equals()方法的區別
API概述
API(Application Programming Interface) ,是指應用程序編程接口。Java API,就是Java提供給我們使用的類,這些類將底層的實現封裝了起來、
Object類
- Object類概述
- 它是類層次結構的根類
- 所有類都直接或者間接的繼承自該類
- 構造方法
- 只有空參構造:public Object();
備注:子類的構造方法默認訪問的是父類的空參構造方法
hashCode()方法
-
方法概述
- hashCode()方法會返回該對象的哈希碼值,返回值類型是int類型,默認情況下,該方法會根據該對象的地址來計算。
- 不同對象的,hashCode()一般來說不會相同,但是同一個對象的hashCode()值肯定相同。
-
舉個例子
輸出:
1829164700 2018699554 1311053135getClass()方法
- 方法概述
- 該方法會返回對象的字節碼文件(.class文件),返回值類型為Class類。
- 我們可以通過調用Class類中的方法,來獲取信息,比如getName()方法可以獲取對象的類的全名稱。
- 舉個例子
輸出:
com.guiyang.bean.StudenttoString()方法
toString()方法會返回該對象的字符串表示,我們可以通過改寫類的toString方法,來顯示對象的屬性值。
- 舉個例子1(未重寫的toString方法)
輸出:
com.guiyang.bean.Cat@6d06d69c com.guiyang.bean.Cat@6d06d69c我們看到@左邊是Cat類的全名,@右邊是該對象的十六進制哈希碼值。
- 舉個例子(重寫Student類的toString方法)
我們看到上面例子中toString()方法輸出的結果好像沒什么意義,這時,我們可以改寫該類的toString()方法,比如,我們改寫Student類的toString()方法:
package com.guiyang.bean;public class Student {private String name;private int age;public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() { //alt+shift+s 再加 sreturn "Student [name=" + name + ", age=" + age + "]";}}- 舉個例子3(重寫的toString方法)
輸出:
Student [name=小白, age=18] Student [name=小白, age=18] com.guiyang.bean.Cat@6d06d69cequals()方法
該方法可以判斷兩個對象是否相等(默認情況下比較的是對象的引用是否相同),返回值為布爾類型,由于比較對象的引用沒有意義,一般建議重寫該方法。
- 舉個例子1(未重寫equals()方法)
輸出:
false false我們看到未重寫equals方法時,該方法對比的是兩個對象的地址值是否相等,它的作用和==相同,所以我們需要重寫該方法,擴展該功能,比較對象的屬性值,比如相同屬性的對象可以相等。
- 舉個例子2(重寫Bunny類的equals()方法)
- 舉個例子3(重寫equals()方法)
輸出:
true false- null和空字符串的區別
null與空字符串主要區別如下:
-
null不指向任何對象,相當于沒有任何值;而空字符串代表一個長度為0的字符串
-
null不分配內存空間;而空字符串會分配內存空間
==與equals()方法的區別
- ==是一個比較運算符號,既可以比較基本數據類型,也可以比較引用數據類型,基本數據類型比較的是值,引用數據類型比較的是地址值.
- equals方法,只能比較引用數據類型,所有的對象都會繼承Object類中的方法,如果沒有重寫Object類中的equals方法,equals方法和==號比較引用數據類型無區別,重寫后的equals方法可以比較對象中的屬性值
總結
以上是生活随笔為你收集整理的第三次学JAVA再学不好就吃翔(part45)--Object类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 青灯十层怎么过
- 下一篇: 数据库update用法详解