JAVA入門小小白學(xué)習(xí)中ing(Object類、8種基本類型對應(yīng)的包裝類)

小豬學(xué)習(xí)

小小白慢慢學(xué)習(xí)中ing 第十九天

努力努力


本日內(nèi)容(Object類、8種基本類型對應(yīng)的包裝類)


1、Object類:

所有類的根基,Java中的所有的類,都會直接或間接的繼承Object類。

只要是java中的類對象,默認(rèn)都可以調(diào)用Object類中的方法。

????????如果一個方法的參數(shù)為Object類型,實(shí)際可以傳入任意的類對象。

????????如果一個方法的返回值是Object類型,實(shí)際上可以返回任意的類對象。

A:getClass()-->Class,未完待續(xù)--->反射

????????返回一個對象運(yùn)行時的類類型。

????????對象.getClass()--->返回該對象所屬的類的字節(jié)碼文件對象。

????????理解為:返回的是堆中的實(shí)際的對象的類型

B:hashCode()--->int,獲取對象的哈希碼

????????每當(dāng)產(chǎn)生一個對象的時候,都是由哈希算法計(jì)算出該對象的哈希值。

????????擴(kuò)展:該方法是native的。native詞義:"本土的,土著的"。native method,就是一個Java調(diào)用的非java代碼的接口。方法的實(shí)現(xiàn)可能由非java語言實(shí)現(xiàn)。

C:toString()--->String,返回一個對象的字符串表示形式

????????????????對象.toString()--->String,描述這個對象的。

????????Object類:對于toString()-->獲取的是對象的內(nèi)存地址(邏輯地址)

????????????????getClass().getName() + @ + 對象的哈希值(轉(zhuǎn)16進(jìn)制)

????????實(shí)際上,我們并不希望獲取對象的內(nèi)存地址:對于對象的描述,我們認(rèn)為使用對象的各個屬性值,拼接一個字符串,更合理。

????????子類應(yīng)該重寫該方法。如何重寫?習(xí)慣上是將對象的屬性拼接成一個字符串返回即可。

D:equals()-->boolean,用于比較兩個對象是否相等。

????????????==:專門比較數(shù)值,是否相等。適合8個基本數(shù)據(jù)類型:byte,short,int,long,float,double,char,boolean

????????????equals(),在Object類中,提供了一個方法equals(),專門用于判斷對象是否相等。

Object類中,equals()方法的源代碼:

//在方法中this,就指代了c1對象 ?

public boolean equals(Object obj) {//Object obj = c2;

????? return (this == obj);

}

c1.equals(c2);//false

經(jīng)查看源代碼, 我們發(fā)現(xiàn),父類中的equals(),但是實(shí)際上還是比較了對象的內(nèi)存地址,我們認(rèn)為不好用。所以子類重寫。比較對象的各個屬性值。

子類重寫:重寫的規(guī)則

????????應(yīng)該比較對象的各個屬性值即可,如果都相同,那么認(rèn)為是相同的對象,最終返回true,否則返回false。

c1.equals(c2);

/*

分析:

this-->c1

obj-->c2,向上轉(zhuǎn)型

Cat c2 = new Cat();

c1.equals(c2);//Object obj = c2;

*/

//step1:先比較地址:c1和c2 的地址:this == obj,如果地址相等,直接返回true。

//step2:判斷,obj == null? obj--->Cat

//step3:比較對應(yīng)的屬性是否相等

this.各種屬性和

? ? ? ?obj--->向下轉(zhuǎn)型:c2.各種屬性

2、8種基本類型對應(yīng)的包裝類

2.1、 8種基本數(shù)據(jù)類型

在java中,有兩大數(shù)據(jù)類型:基本類型,引用類型

基本類型:

????????整數(shù)型:byte,int,short,long

????????浮點(diǎn)型:float,double

????????字符型:char,''

????????布爾型:boolean,

引用類型:

????????數(shù)組

????????類類型

????????接口

????????集合。。。。

對于每一種基本數(shù)據(jù)類型,都有對應(yīng)的類類型。


靜態(tài)屬性:

MAX_VALUE

MIN_VALUE

2.2.2 Number類

Number類作為6種數(shù)值類型的包裝類的直接父類。然后再繼承Object類

int,short,long,byte,float,double這6種都是數(shù)值類型的。整數(shù)和小數(shù)。

1、將基本類型——>轉(zhuǎn)為對象類型(裝箱)

????????構(gòu)造方法可以的。

????????靜態(tài)的valueOf()

2、將對象類型——>基本類型(拆箱)

????????對象.xxxValue()

3、將String類型——>基本類型

????????靜態(tài)的parseXXX(String類型),基本類型的數(shù)據(jù)

有256個已經(jīng)緩存好的數(shù)據(jù):[-128,127]。

2.2.3 裝箱和拆箱

裝箱:將基本類型--->包裝類類型的對象

拆箱:從包裝類類型的對象——>基本類型

JDK1.5之前,需要自己通過代碼來實(shí)現(xiàn)裝箱和拆箱。

自動:auto

自動裝箱和自動拆箱

2.2.4 Character

包裝的是char類型的數(shù)值。

2.2.5 Boolean類

面向?qū)ο螅侯愔械囊粋€實(shí)例,class



希望我能堅(jiān)持住每天堅(jiān)持記錄著 ...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容