第三階段考核總結(jié)

抽象類與接口的的區(qū)別

抽象類:用關(guān)鍵字abstract修飾,存在抽象方法的類一定是抽象類疹吃,但抽象類不一定有抽象方法蹦疑,抽象類可以存在成員變量,也可以存在構(gòu)造器用于對(duì)屬性的初始化萨驶,但是抽象類不能被實(shí)例化歉摧,繼承抽象類的子類可以將父類的所有抽象方法實(shí)現(xiàn),也可以選擇性的實(shí)現(xiàn)而將子類繼續(xù)設(shè)定為抽象方法,

接口:用關(guān)鍵字interface聲明叁温,接口中只存在抽象方法再悼,并且存在的屬性全部為public static final類型,且不存在構(gòu)造器膝但,一個(gè)子類可以實(shí)現(xiàn)多個(gè)接口冲九,用implements關(guān)鍵字實(shí)現(xiàn)接口,要將接口中的全部方法實(shí)現(xiàn)锰镀,接口也可以存在繼承關(guān)系娘侍,子類要將實(shí)現(xiàn)的接口的全部方法實(shí)現(xiàn),包括該接口的父類接口中的方法


為什么要有g(shù)et,set方法

set和get方法是面向?qū)ο缶幊讨谐S玫姆N封裝方式泳炉,用于對(duì)類的屬性進(jìn)行訪問(wèn)和修改憾筏。它們的用如下:

1.封裝數(shù)據(jù):set方法用于設(shè)置屬性的值,get方法用于獲取屬性的值花鹅。通過(guò)使用set和get方法氧腰,可以將屬性的訪問(wèn)限制在類的內(nèi)部,避免直接對(duì)屬性進(jìn)行操作刨肃,提高了代碼的安全性和可維護(hù)性古拴。

2.控制訪問(wèn)權(quán)限:set和get方法可以對(duì)屬性的訪問(wèn)進(jìn)行控制。例如真友,可以在set方法中添加一些條件判斷黄痪,對(duì)傳入的值進(jìn)行驗(yàn)證和處理,確保屬性值的有效性盔然。同時(shí)桅打,get方法可以對(duì)屬性的返回值進(jìn)行處理,例如格式化輸出或者進(jìn)行計(jì)算愈案。

3.實(shí)現(xiàn)數(shù)據(jù)封裝:通過(guò)使用set和get方法挺尾,可以將屬性的實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),只暴露必要的接口給外部使用站绪。這樣可以提高代碼的封裝性遭铺,減少對(duì)屬性的直接訪問(wèn),降低了類與類之間的耦合度恢准。

4.可以添加額外邏輯:在set和get方法中魂挂,可以添加一些額外的邏輯操作。例如馁筐,在set方法中可以觸發(fā)事件或者通知其他對(duì)象涂召,實(shí)現(xiàn)更復(fù)雜的業(yè)務(wù)邏輯。

總結(jié)眯漩,set和get方法提供了一種良好的封裝方式,使得類的屬性訪問(wèn)更加安全、可控赦抖,并且提供了更好的代碼封裝性和可維護(hù)性舱卡。


向上轉(zhuǎn)型與向下轉(zhuǎn)型

1.向上轉(zhuǎn)型:

父類 : class Fruit {}

子類 : class Apple extends Fruit{}

創(chuàng)建向上轉(zhuǎn)型對(duì)象 fruit ;

Fruit fruit = new Apple();

Apple 向上轉(zhuǎn)型為父類

如果 Apple 中有重寫父類方法,fruit 對(duì)象默認(rèn)調(diào)用子類中重寫方法

注意 :

fruit 可以直接訪問(wèn)子類重寫方法队萤。

fruit 不能直接訪問(wèn)子類私有方法轮锥、子類所有屬性。

fruit 可以通過(guò)重寫方法調(diào)用子類私有方法和屬性

fruit 重寫方法中調(diào)用方法和屬性順序 : 子類 -> 父類

其他 : 關(guān)于重寫的返回值類:如果方法的返回類型是 void和基本數(shù)據(jù)類型要尔,則返回值重寫時(shí)不可修改舍杜。但是如果方法的返回值是引用類型,重寫時(shí)是可以返回該引用類型的子類的赵辕。

2.向下轉(zhuǎn)型

注意 : 只有向上轉(zhuǎn)型過(guò)的對(duì)象才能向下轉(zhuǎn)型

向下轉(zhuǎn)型為恢復(fù)子類所有功能既绩。

Apple apple = (Apple) fruit;


有參構(gòu)造與無(wú)參構(gòu)造的存在情況

有參構(gòu)造函數(shù)和無(wú)參構(gòu)造函數(shù)是面向?qū)ο缶幊讨谐S玫膬煞N構(gòu)造函數(shù)形式。

無(wú)參構(gòu)造函數(shù):指沒有參數(shù)的構(gòu)造函數(shù)还惠,也稱為默認(rèn)構(gòu)造函數(shù)饲握。它在創(chuàng)建對(duì)象時(shí)不需要傳入任何參數(shù),可以直接使用默認(rèn)的屬性值進(jìn)行對(duì)象的初始化蚕键。無(wú)參構(gòu)造函數(shù)通常用于創(chuàng)建對(duì)象時(shí)不需要額外信息的情況救欧。

有參構(gòu)造函數(shù):指帶有參數(shù)的構(gòu)造函數(shù)。它在創(chuàng)建對(duì)象時(shí)需要傳入相應(yīng)的參數(shù)锣光,用于初始化對(duì)象的屬性值笆怠。有參構(gòu)造函數(shù)可以根據(jù)傳入的參數(shù)不同,靈活地初始化對(duì)象的屬性誊爹。有參構(gòu)造函數(shù)通常用于創(chuàng)建對(duì)象時(shí)需要額外信息的情況蹬刷。

有參構(gòu)造函數(shù)和無(wú)參構(gòu)造函數(shù)可以同時(shí)存在于一個(gè)類中,也可以只存在其中一種替废。如果一個(gè)類中沒有定義任何構(gòu)造函數(shù)箍铭,編譯器會(huì)自動(dòng)生成一個(gè)默認(rèn)的無(wú)參構(gòu)造函數(shù)。如果在類中定義了有參構(gòu)造函數(shù)椎镣,但沒有定義無(wú)參構(gòu)造函數(shù)诈火,那么在創(chuàng)建對(duì)象時(shí)必須顯式地傳入?yún)?shù),否則會(huì)編譯

錯(cuò)誤状答。

總結(jié):

無(wú)參構(gòu)造函數(shù):不需要傳入?yún)?shù)冷守,使用默認(rèn)的屬性值進(jìn)行對(duì)象初始化。

有參構(gòu)造函數(shù):需要傳入?yún)?shù)惊科,根據(jù)參數(shù)的不同進(jìn)行對(duì)象初始化拍摇。

在平時(shí)寫代碼的過(guò)程中,要么無(wú)參構(gòu)造和有參構(gòu)造都寫馆截,要么都不寫蜂莉。


方法的重寫與重載

方法的重寫是子類重新定義父類中已經(jīng)存在的方法,方法名稱混卵、參數(shù)列表和返回類型必須相同,實(shí)現(xiàn)多態(tài)幕随。

方法的重載是在同一個(gè)類中定義多個(gè)具有相同名稱但參數(shù)列表不同的方法,根據(jù)參數(shù)類型和數(shù)量確定調(diào)用哪個(gè)方法辕录。


重寫與重載的區(qū)別:

1.方法重載是發(fā)生在同一個(gè)類中,而方法重寫是發(fā)生在子類和父類之間梢卸;

2.方法重載要求:方法名相同低剔、但參數(shù)類型或參數(shù)個(gè)數(shù)不同速梗;方法重寫:方法名、返回值類型和參數(shù)列表都相同

3.方法重載是用于相同的方法名稱不同的問(wèn)題襟齿;方法重寫是因?yàn)楦割惖哪硞€(gè)方法不滿足子類的要求姻锁,所以對(duì)該方法進(jìn)行重寫


比較字符串用==還是equal

”==”是用來(lái)比較字符串的引用地址,而equals()才是比較字符串的值猜欺。兩個(gè)值相同的字符串用”==”比較結(jié)果有可能是false位隶,而用equals()則一定為true。除非兩個(gè)字符串是同一個(gè)new出來(lái)的對(duì)象开皿,不然比較字符串值是否相同應(yīng)該要用equals()涧黄。

==是運(yùn)算符,equal是方法

總結(jié):

1.java基本類型(short赋荆,int笋妥,long,byte窄潭,char春宣,float,double嫉你,boolean)

比較基本類型月帝,只能用==,不能用equal幽污,這里的==比較的是兩個(gè)變量的值

2.比較包裝類型

==比較的是內(nèi)存地址嚷辅,因?yàn)閍和b是new出來(lái)的,是兩個(gè)不同的對(duì)象距误,所以地址肯定是不同的簸搞,而equal比較的是值

3.比較String類型

==比較的是內(nèi)存地址扁位,equal比較的是值

4.比較對(duì)象

==和equal比較的都是內(nèi)存地址,因?yàn)閑qual沒有被重寫趁俊,沒有被重寫的equal都是object的equal方法


創(chuàng)建字符串的2種方式的區(qū)別

1.采用直接賦值的方式賦值

eg:? String str1 = "abc";

采用這種方法去創(chuàng)建字符串時(shí)贤牛,JVM會(huì)在方法區(qū)的字符串常量池中尋找這個(gè)字符串是否存在,如果存在則不去創(chuàng)建则酝,讓創(chuàng)建的對(duì)象直接引用其在字符串常量池中的地址;如果不存在則在字符串常量池中創(chuàng)建這個(gè)字符串并且返回這個(gè)字符串在常量池中的地址闰集。

2.采用new關(guān)鍵字新建一個(gè)字符串對(duì)象

eg:? String str2 = new String("abc");

采用new關(guān)鍵字新建一個(gè)字符串對(duì)象時(shí)沽讹,JVM首先在字符串池中查找有沒有"abc"這個(gè)字符串如果有,則不在池中再去創(chuàng)建"abc"這個(gè)對(duì)象了武鲁,直接在堆中創(chuàng)建一個(gè)"abc"字符串對(duì)象爽雄,然后將堆中的這個(gè)"abc"對(duì)象的地址返回賦給引用str,這樣沐鼠,str就指向了堆中創(chuàng)建的這個(gè)"abc"字符串對(duì)象挚瘟;如果沒有,則首先在字符串池中創(chuàng)建一個(gè)"abc"字符串對(duì)象饲梭,然后再在堆中創(chuàng)建一個(gè)"abc"字符串對(duì)象乘盖,然后將堆中這個(gè)"abc"字符串對(duì)象的地址返回賦給str引用,這樣憔涉,str指向了堆中創(chuàng)建的這個(gè)"abc"字符串對(duì)象订框。

注意:這種方法本質(zhì)是在堆區(qū)引用字符串常量池中的地址,每次new的對(duì)象兜叨,在堆上都會(huì)創(chuàng)建一個(gè)新的對(duì)象指向常量池穿扳。

?這兩種方法創(chuàng)建出的字符串雖然內(nèi)容是一樣的,但指向是不一樣的国旷。str1和str3直接指向的是常量池的地址矛物,str2指向堆的地址。

總結(jié):new創(chuàng)建出的對(duì)象指向均不相等跪但,字符串的創(chuàng)建無(wú)論是哪種方式履羞,都需要先在字符串常量池中尋找該字符串是否存在。


數(shù)組的動(dòng)態(tài)初始化與靜態(tài)初始化

數(shù)組的初始化:數(shù)組元素類型[] 數(shù)組名=new 數(shù)組元素類型[]{元素1特漩,元素2.....} 吧雹;

數(shù)組的初始化:?數(shù)組元素類型[] 數(shù)組名={元素1,元素2.....} 涂身;


foreach

使用?for each?循環(huán)來(lái)遍歷數(shù)組或集合中的元素雄卷。for each?循環(huán)也被稱為增強(qiáng)型?for?循環(huán)。

?for each?循環(huán)的基本語(yǔ)法:

for (元素類型 變量名 : 數(shù)組或集合) {

? ? // 執(zhí)行循環(huán)體操作

}

for each遍歷二維數(shù)組:

for(元素類型 [ ] 過(guò)渡一維數(shù)組名 : 二維數(shù)組名){

????for(元素類型 變量名 :?過(guò)渡一維數(shù)組名){

? ? ? ? ? ? ? // 執(zhí)行循環(huán)體操作

????}

}


Arrylist是否有序

ArrayList:(有序蛤售、可重復(fù)的)

創(chuàng)建集合:ArrayList 集合名=new ArrayList();

獲取元素:get(int index)

替換元素:set(int index,Object element)

添加元素:add(添加一個(gè)元素)? ? ? addAll(將指定集合中的所有元素都添加到當(dāng)前集合中)

刪除元素:remove(刪除集合中的指點(diǎn)元素)? ? ? ? removeAll(刪除指定集合中的所有元素)

將集合元素順序翻轉(zhuǎn):reverse(List list)

將集合元素按自然順序排列:sort(List list)

判斷是否包含元素:contains(判斷集合中是否包含某個(gè)元素)? ? ? containsAll(判斷集合中是否包含指定集合中所有元素)

HashSet:(無(wú)序丁鹉、不可重復(fù))

key value重復(fù)問(wèn)題


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妒潭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子揣钦,更是在濱河造成了極大的恐慌雳灾,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冯凹,死亡現(xiàn)場(chǎng)離奇詭異谎亩,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)宇姚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門匈庭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人浑劳,你說(shuō)我怎么就攤上這事阱持。” “怎么了魔熏?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵衷咽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蒜绽,道長(zhǎng)镶骗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任躲雅,我火速辦了婚禮卖词,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吏夯。我一直安慰自己此蜈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布噪生。 她就那樣靜靜地躺著裆赵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪跺嗽。 梳的紋絲不亂的頭發(fā)上战授,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音桨嫁,去河邊找鬼植兰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛璃吧,可吹牛的內(nèi)容都是我干的楣导。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼畜挨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼筒繁!你這毒婦竟也來(lái)了噩凹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤毡咏,失蹤者是張志新(化名)和其女友劉穎驮宴,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呕缭,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡堵泽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恢总。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片落恼。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖离熏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情戴涝,我是刑警寧澤滋戳,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站啥刻,受9級(jí)特大地震影響奸鸯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜可帽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一娄涩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧映跟,春花似錦蓄拣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至荸镊,卻和暖如春咽斧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背躬存。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工张惹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岭洲。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓宛逗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親盾剩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拧额,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容