



免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七章 封裝、繼承、多態(tài)封裝的概念什么是封裝 在程序上,隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開(kāi)接口,控制在程序中屬性的讀和修改的訪問(wèn)級(jí)別;將抽象得到的數(shù)據(jù)和行為(或功能)相結(jié)合,形成一個(gè)有機(jī)的整體,也就是將數(shù)據(jù)與操作數(shù)據(jù)的源代碼進(jìn)行有機(jī)的結(jié)合,形成“類”,其中數(shù)據(jù)和函數(shù)都是類的成員。封裝的好處現(xiàn)實(shí)中給你一張信用卡,但實(shí)際我們拿到的只是一張卡片,不會(huì)看到密碼。提高一個(gè)物體內(nèi)部組成部分的安全性可以向外部屏蔽一個(gè)物體內(nèi)部組成部分的差異public class TestEncapsulation1()public static void main(String agrs)CreditCard card = new CreditCard();System.out.println(card.password);class CreditCardString password = “123456”;double money = 100.0;封裝的三要素保護(hù)實(shí)例變量 private建立public的訪問(wèn)器方法(getter讀取器/setter設(shè)置器)對(duì)于方法使用JavaBean命名規(guī)范 get set getPassword(); setPassword();屬性封裝方法根據(jù)需要封裝方法聲明公開(kāi),方法實(shí)現(xiàn)封裝doubleValue(2);public static int doubleValue(int value)/return value*2;return value2;繼承類與類之間的關(guān)系“HAS-A” 關(guān)系“IS-A” 關(guān)系USED-A 關(guān)系CatDogAnimal什么是繼承將類的共性進(jìn)行抽象形成的類(父類、超類)提高代碼的復(fù)用性extendsextendsextends關(guān)鍵字Dog d = new Dog();d.eat();d.sleep();System.out.println(d.age);JAVA中繼承的特點(diǎn)java中的繼承是單繼承java中單繼承的好處 簡(jiǎn)單、繼承關(guān)系在內(nèi)存中的表現(xiàn)形式Dog類extends Animal類new Dog();分配空間(父類對(duì)象空間,子類對(duì)象空間)遞歸的構(gòu)造父類對(duì)象初始化屬性調(diào)用構(gòu)造方法java中的訪問(wèn)修飾符什么是java中的訪問(wèn)修飾符public /不論包內(nèi)、包外、或繼承都可以訪問(wèn)private /只能在自己類的范圍內(nèi)被訪問(wèn)。protected /在同一個(gè)包里的可以訪問(wèn)(=default),在包外的子類可以基于繼承訪問(wèn)default /不能被包外的類訪問(wèn)兩個(gè)不同的訪問(wèn)問(wèn)題一個(gè)類中的方法代碼是否能夠訪問(wèn)另一個(gè)類的成員 /能一個(gè)子類是否能夠繼承其父類的成員java作用域public,private,protected及不寫(xiě)時(shí)的區(qū)別 在說(shuō)明這四個(gè)關(guān)鍵字之前,我想就class之間的關(guān)系做一個(gè)簡(jiǎn)單的定義:對(duì)于繼承自己的class,base class可以認(rèn)為他們都是自己的子女,而對(duì)于和自己一個(gè)目錄下的classes,認(rèn)為都是自己的朋友。1、public:對(duì)所有用戶開(kāi)放,所有用戶都可直接調(diào)用2、private:私有。除了class自己之外,任何人都不可直接使用,私有財(cái)產(chǎn)神圣不可侵犯嘛,即便是子女,朋友,都不可使用。3、protected:對(duì)于子女、朋友來(lái)說(shuō),就是public的,可自由使用,無(wú)任何限制;而對(duì)于其他的外部class,protected就變成private。(同一個(gè)包中的類,若不在同一個(gè)包中,必須為其子孫類才可使用)4、默認(rèn):默認(rèn)可以稱為friendly,但是java語(yǔ)言中是沒(méi)有friendly這個(gè)修飾符的,這樣稱呼應(yīng)該是來(lái)源于c+。默認(rèn)的訪問(wèn)權(quán)限是包級(jí)訪問(wèn)權(quán)限。補(bǔ)充說(shuō)明: 1.每個(gè)編譯單元(類文件)都僅能有一個(gè)public class 2.public class的名稱(包含大小寫(xiě))必須和其類文件同名。 3.一個(gè)類文件(*.java)中可以不存在public class。 如果我們?cè)谀硞€(gè)包內(nèi)撰寫(xiě)一個(gè)class,僅僅是為了配合同一包內(nèi)的其他類工作,并且我們不想再為了撰寫(xiě)說(shuō)明文檔給客戶(不一定是現(xiàn)實(shí)意義的客戶,可能是調(diào) 用這個(gè)類的類)看而傷腦筋;或者有可能過(guò)一段時(shí)間之后會(huì)徹底改變?cè)械淖龇?,并以全新的版本代替舊版本,這種情況下一般會(huì)默認(rèn)。 4、class不可以是private和protected。子類的擴(kuò)展方法的覆蓋子類覆蓋方法的訪問(wèn)修飾符范圍必須大于或者等于父類對(duì)應(yīng)方法的訪問(wèn)修飾符范圍super關(guān)鍵字每一個(gè)子類的構(gòu)造方法在沒(méi)有顯示調(diào)用super()系統(tǒng)都會(huì)提供一個(gè)默認(rèn)的super()super() 書(shū)寫(xiě)在第一行可以在子類構(gòu)造方法中顯示調(diào)用super(),完成對(duì)特定父類構(gòu)造方法的調(diào)用多態(tài)什么是多態(tài)Dog d = new Dog();Animal a = new Dog(); /一個(gè)客觀存在的Dog對(duì)象看做一個(gè)Animal(父類)。通過(guò)父類型的引用指向子類型的對(duì)象多態(tài)的特點(diǎn)對(duì)象類型不可變,引用類型可變只能調(diào)用引用其引用類型中定義的方法 / Animal a = new Dog(); a只能調(diào)用Animal中定義的方法,不能調(diào)用Dog中的方法運(yùn)行時(shí)會(huì)運(yùn)行子類覆蓋的方法強(qiáng)制類型轉(zhuǎn)換Animal a = new Dog(); Dog d = a; /錯(cuò)誤 dog d = (Dog)a; /正確java.lang.ClassCastException /強(qiáng)制類型轉(zhuǎn)換異常instanceof運(yùn)算符 它的作用是測(cè)試它左邊的對(duì)象是否是它右邊的類的實(shí)例,返回boolean類型的數(shù)據(jù)if(a instanceof Dog)Dog d = (Dog)a;多態(tài)的作用提高代碼的通用性 Dog d = new Dog(); d.sleep(); d.eat(); Animal a = new Dog();a.s
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鄉(xiāng)村醫(yī)生考試題庫(kù):農(nóng)村常見(jiàn)傳染病防治傳染病預(yù)防知識(shí)試題
- 2025年短劇行業(yè)營(yíng)銷分析報(bào)告:智AI伴飛
- 媒體信息流控制策略
- 南寧市新提拔領(lǐng)導(dǎo)干部任前法律知識(shí)培訓(xùn)模擬試題三
- 南安市中考二??荚囌Z(yǔ)文試題(圖片版無(wú)答案)
- 2025年安全生產(chǎn)網(wǎng)絡(luò)知識(shí)競(jìng)賽題庫(kù)及答案(90題)
- 2025年上海楊浦郵政發(fā)布崗位招聘考試筆試試題(含答案)
- 老年肺炎的護(hù)理課件
- 海洋經(jīng)濟(jì)區(qū)域競(jìng)爭(zhēng)力分析
- 老年護(hù)理中職教學(xué)課件
- 檢驗(yàn)科工作人員健康管理制度(4篇)
- 簡(jiǎn)潔風(fēng)格微立體圖表圖標(biāo)關(guān)系動(dòng)態(tài)素材課件
- 超級(jí)經(jīng)典的SYB游戲模塊一規(guī)則、流程和演練課件
- 一級(jí)(含)以下醫(yī)療機(jī)構(gòu)醫(yī)學(xué)檢驗(yàn)科準(zhǔn)入現(xiàn)場(chǎng)驗(yàn)收表
- 五年級(jí)語(yǔ)文上冊(cè)各單元作文范文
- 七年級(jí)下學(xué)期暑假家長(zhǎng)會(huì)課件
- 整形美容??撇v
- DB33T 1199-2020 農(nóng)村生活污水處理設(shè)施建設(shè)和改造技術(shù)規(guī)程
- IPQC培訓(xùn)教材
- SAE-J400-2002-中文版
- 高中物理知識(shí)點(diǎn)(力學(xué)部分)
評(píng)論
0/150
提交評(píng)論