最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

黑馬程序員全套Java教程_Java基礎(chǔ)入門視頻教程,零基礎(chǔ)小白自學(xué)Java必備

2022-01-22 11:29 作者:行者無疆_hiter  | 我要投稿

引言:我認(rèn)為,學(xué)習(xí)編程語言,語法是可以通過隨時查找+做練習(xí)鞏固的,學(xué)習(xí)過程中這不是重點,重點是語言和內(nèi)存之間的關(guān)系、使用規(guī)范背后的更底層的邏輯。


類的數(shù)據(jù)類型,

如Scanner sc=new Scanner(System.in);

稱sc為Scannerl類的對象。




包括創(chuàng)建和使用

(1)

(2)





堆內(nèi)存的變量有默認(rèn)初始值,棧內(nèi)存的變量無默認(rèn)初始值

一個類里的成員方法可以調(diào)用這個類和與它有繼承關(guān)系的父類的成員方法:

(1)static的成員方法只能調(diào)用靜態(tài)的成員方法,使用靜態(tài)的成員變量

(2)非static的成員方法調(diào)用成員方法和變量與它們是否static無關(guān)


類中&方法外的是成員變量,

方法里的是局部變量。




調(diào)用set函數(shù)時,因為自己可以修改set()所以可以增加對不合理數(shù)據(jù)的篩選

Student類和StudentDemo標(biāo)準(zhǔn)類




this.在內(nèi)存中的實現(xiàn)原理:

this在哪個對象調(diào)用的成員方法里,this就是哪個對象的地址。(P4)

示例:






String類的構(gòu)造方法(講了4種,推薦第四種直接賦值)



字符串的拼接



字符串的連接用如圖代碼時,由該程序運行時內(nèi)存圖可知:常量池中001、002地址及其空間均被浪費


StringBuilder類的兩個方法:append() reverse()


鏈?zhǔn)皆鲩L

StringBuilder類的reverse、append方法很好用,但String不能用。通過將String轉(zhuǎn)為StringBuilder,使用reverse、append方法后再轉(zhuǎn)換回String就可以實現(xiàn)目的。


(1)構(gòu)造方法StringBuilder(String s)

成員方法 toString()

(2)

(1)字符串的拼接2.0


(2)用StringBuilder與String相互轉(zhuǎn)化完成字符串反轉(zhuǎn)


StringBuilder和String類均有l(wèi)ength()方法


(1)


(2)ArrayList類的方法使用示例

(1)創(chuàng)建ArrayList類的對象array,并將String類的對象存入array:



(2)





(3)



實現(xiàn)學(xué)生管理系統(tǒng):



Alt+ins自動生成構(gòu)造方法、成員方法(get、set)等


繼承:提取共同部分

示例:




繼承的好處&弊端&何時適合使用繼承:



子類:狗;父類:動物

<=> 狗是動物的一種


示例: z.show()方法調(diào)用時使用weight變量,先從z對象所屬的類 Zi 里的成員方法show()里找是否含有局部變量weight, 若沒有從 Zi 里找是否含有成員變量weight,若沒有從 Fu 里找是否含有成員變量weight







(1)繼承的構(gòu)造方法

當(dāng)Fu中無參構(gòu)造方法被注釋掉,Zi類中構(gòu)造方法由于默認(rèn)第一句是:

super() //調(diào)用Fu類無參構(gòu)造方法,故而報錯。

將Zi類構(gòu)造方法方法體第一句均加上:

super(Fu中構(gòu)造方法的參數(shù)的實參)

//通過調(diào)用Fu中含參方法體完成Fu類的初始化




(2)繼承的成員方法





方法重寫


示例:

Phone類里有call()的成員方法。NewPhone類里有call()的成員方法,其中用super訪問Phone類里的call()








案例:

【一】

(2)帶參:

測試類:

注:第5行會報錯,是因為:

一個類中若無構(gòu)造方法,系統(tǒng)會自動給一個無參構(gòu)造方法;

一個類中若有含參構(gòu)造方法,系統(tǒng)不會自動給無參構(gòu)造方法,需要手動寫無參構(gòu)造方法。


改后:




Teacher類(子類):


Person類(父類):

Student類(子類):

【二】


注:

(1)在用途方面:含參構(gòu)造方法==無參構(gòu)造方法+set方法

(2)在兩個子類里要寫上含參和無參構(gòu)造方法,如果已經(jīng)寫好父類,含參構(gòu)造方法也可以根據(jù)父類的成員變量Alt+ins自動生成


Cat類



Dog類



Animal類


測試類






示例:



四種權(quán)限修飾符:

權(quán)限大小(修飾方法時):

示例:



(1)不同包下無繼承關(guān)系的類使用Fu類下的成員方法:

(2)不同包下有繼承關(guān)系的類使用Fu類下的成員方法:

(3)相同包下有繼承關(guān)系的類使用Fu類下的成員方法:

(4)Fu類里使用自己的成員方法:


修飾成員變量時:

private:在測試類調(diào)用用set、get方法,故而需要在類里面添加二方法

public:直接調(diào)用

不加修飾符:默認(rèn),可以直接調(diào)用

final修飾:類、成員方法、局部&成員變量


(1)final修飾父類的成員方法:該方法不能被重寫


(2)final修飾成員變量:該變量無法再被賦值

(3)final修飾類:該類不能做父類


(4)final修飾局部變量



static修飾:成員方法、成員變量


【1】修飾成員變量時:

一個類中定義的靜態(tài)成員變量,在賦值時最佳采用類調(diào)用賦值,被賦值后被該類定義的所有對象共享,在測試類里賦值時用類訪問賦值


【2】修飾成員方法時:

(1)static修飾的成員方法只能調(diào)用靜態(tài)的成員方法,使用靜態(tài)的成員變量

(2)無static修飾的成員方法調(diào)用成員方法和變量與它們是否static無關(guān)(均可使用)


示例:



例:




向上轉(zhuǎn)型(多態(tài))

(1)例:age在Animal類中有,所以通過編譯,weight在Animal類中沒有,所以沒有通過編譯,訪問的是Animal類的成員變量age;

eat( )在Animal類中有,所以通過編譯,playGame( )在Animal類中沒有,所以沒有通過編譯,訪問的是Cat類的成員方法eat()。





給兩個類分別創(chuàng)建一個對象,第一個類里含有一個無參構(gòu)造方法,第二個類含有一個含參構(gòu)造方法且參數(shù)是第一個類的對象

即如:

第一個類:

第二個類:

測試類:

輸出:

解釋:

(2)示例:

左邊有該成員方法==>可以通過編譯

右邊沒有該成員方法==>調(diào)用左邊的




(3)當(dāng)子類有父類沒有的功能時,稱之為特有功能,調(diào)用時無法通過編譯


向下轉(zhuǎn)型:將父類引用強制類型轉(zhuǎn)換為子類對象,可以憑借轉(zhuǎn)換后的對象調(diào)用子類特有成員方法



示例:貓和狗多態(tài)版






抽象方法:只有方法聲明,沒有方法體

用abstract關(guān)鍵字修飾


抽象類里面可以有抽象方法也可以有非抽象方法:

(1)抽象類里面可以沒有抽象方法,但抽象方法一定在抽象類里面


抽象類不是具體的,不能創(chuàng)建對象



在子類里函數(shù)重寫,用多態(tài)都形式創(chuàng)建對象


抽象類的子類要重寫抽象類的所有抽象方法,

否則也是一個抽象類,示例:



抽象類的成員:

(1)成員變量

final修飾(常量)與 final不修飾(變量)的效果和非抽象類一樣


提高了代碼復(fù)用性:是指抽象類用多態(tài)創(chuàng)建對象,多態(tài)用到了繼承,所以提高了代碼復(fù)用性

貓和狗抽象類版本:


抽象類里的抽象方法限定了子類必須完成某些動作(去掉abstract后重寫某些方法)




類implements接口

接口是抽象的不能被實例化,用實現(xiàn)類實例化(也是多態(tài)形式)




抽象類多態(tài)和接口多態(tài)用的多


接口內(nèi)成員變量默認(rèn)被final修飾




(1)接口的成員變量:

不能不初始化,不能修改(因為final),可以用類去調(diào)用(因為static)

【默認(rèn)是public static final類型】

Object()是每一個類的祖宗類,所有類都直接或間接繼承該類

(2)接口無構(gòu)造方法,

super()調(diào)用的其實是Object類的無參構(gòu)造方法

實際上類與接口之間關(guān)系:

(3)接口里只能是抽象方法,因為默認(rèn) public abstract:

默認(rèn) public abstract



【案例】貓與狗

Animal為抽象動物類,要被Cat、Dog類繼承,還要有抽象成員方法eat(),在Cat、Dog類里重寫;


Cat、Dog類繼承Animal類(重寫Animal類里的抽象方法),實現(xiàn)Jumpping接口(重寫接口里的方法);

Jumpping里寫抽象成員方法jump;


Demo類里

接口:

(1)一繼承多

(2)類實現(xiàn)多個接口

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

(1)語法區(qū)別:


(2)



分析方法具體類和抽象類:

從具體開始向上分析(向上逐層歸納共同點直至歸一):

具體類:乒乓球運動員、籃球運動員、乒乓球教練、籃球教練

抽象類:運動員、教練、人

實現(xiàn):

先實現(xiàn)接口,再從高到低實現(xiàn)抽象類,最后實現(xiàn)具體類,在Demo里通過具體類的對象調(diào)用方法。

代碼(光給出乒乓球運動員):





類、抽象類、接口作為形參和返回值的問題:

【1】類名作為形參和返回值:




【2】抽象類作為形參和返回值




【3】接口作為形參和返回值


示例:






(1)內(nèi)部類可以直接調(diào)用外部類成員:

//成員:成員變量、構(gòu)造方法、成員方法


(2)外部類調(diào)用內(nèi)部類成員:創(chuàng)建方法,再在方法里創(chuàng)建內(nèi)部類對象,調(diào)用內(nèi)部類成


【1】成員內(nèi)部類的訪問:


(1)成員內(nèi)部類非私有(不常用):

示例:


(2)之所以把一個類放進(jìn)另一個類里,是不想把它的內(nèi)容隱藏起來不想讓外部看到,其中成員不想被外界直接訪問

------------------------------>修飾符為private:



在外部類建立方法method(),在該方法中創(chuàng)建內(nèi)部類對象,調(diào)用內(nèi)部類方法show(),通過在測試類里調(diào)用外部類對象的method方法調(diào)用show()


【2】



API繼續(xù)學(xué)習(xí):

【1】Math類:

lang包下不需要導(dǎo)包

final修飾:無子類

成員方法和成員變量被static修飾,可以直接用類調(diào)用,無構(gòu)造方法

【2】System

成員方法和成員變量被static修飾,可以直接用類調(diào)用,無構(gòu)造方法

黑馬程序員全套Java教程_Java基礎(chǔ)入門視頻教程,零基礎(chǔ)小白自學(xué)Java必備的評論 (共 條)

分享到微博請遵守國家法律
当阳市| 公安县| 中阳县| 偃师市| 隆子县| 秀山| 龙山县| 临武县| 昌乐县| 双流县| 武隆县| 会东县| 嵊州市| 裕民县| 利津县| 凭祥市| 安图县| 普兰县| 康平县| 左权县| 韩城市| 皋兰县| 福建省| 罗源县| 日照市| 惠水县| 兴仁县| 安国市| 富源县| 略阳县| 稷山县| 东宁县| 韶关市| 呼伦贝尔市| 安义县| 抚顺市| 托克托县| 京山县| 增城市| 墨脱县| 改则县|