




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java面向?qū)ο缶幊蘱 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)q 封裝封裝q 繼承繼承q 多態(tài)多態(tài)q 接口接口q 內(nèi)部類(lèi)內(nèi)部類(lèi)Java面向?qū)ο缶幊?、類(lèi)和對(duì)象:對(duì)象類(lèi);2、面向過(guò)程和面向?qū)ο蟮谋容^;3、面向?qū)ο缶幊蹋∣OP)簡(jiǎn)單的說(shuō),OOP描述的是對(duì)象之間的相互作用。4、面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征:封裝、繼承、多態(tài)面向?qū)ο蟪绦蛟O(shè)計(jì)概述面向?qū)ο蟪绦蛟O(shè)計(jì)概述q 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)Java面向?qū)ο缶幊?封裝就是包裝,所有的屬性和方法都要封裝到類(lèi)中,封裝是面向?qū)ο缶幊痰幕咎卣髦弧?、實(shí)現(xiàn)數(shù)據(jù)隱藏;2、行為不可見(jiàn);3、高效傳遞數(shù)據(jù)。 封裝的特點(diǎn)封裝的特點(diǎn)q 封裝封裝Java面向?qū)ο缶幊蘴hi
2、s的使用的使用1、this變量代表對(duì)象本身2、當(dāng)類(lèi)中有兩個(gè)同名變量,一個(gè)屬于類(lèi)(類(lèi)的成員變量),而另一個(gè)屬于某個(gè)特定的方法(方法中的局部變量),使用this區(qū)分成員變量和局部變量。3、使用this簡(jiǎn)化構(gòu)造方法的調(diào)用。1、銷(xiāo)毀對(duì)象有兩種方式:自動(dòng)銷(xiāo)毀和手動(dòng)調(diào)用System.gc()方法;2、finalize()方法的使用。銷(xiāo)毀對(duì)象(垃圾回收)銷(xiāo)毀對(duì)象(垃圾回收)Java面向?qū)ο缶幊?、構(gòu)造方法的名字和類(lèi)名相同,并且沒(méi)有返回值。2、構(gòu)造方法用于為創(chuàng)建類(lèi)的對(duì)象并對(duì)其初始化。3、我們不能直接調(diào)用構(gòu)造方法,必須通過(guò)new關(guān)鍵字來(lái)調(diào)用,從而創(chuàng)建類(lèi)的實(shí)例。4、Java的類(lèi)都要求有構(gòu)造方法,如果沒(méi)有定義構(gòu)造方
3、法,Java編譯器會(huì)為我們提供一個(gè)缺省的構(gòu)造方法,也就是不帶參數(shù)的構(gòu)造方法。5、當(dāng)我們用缺省的構(gòu)造方法初始化對(duì)象時(shí),成員變量沒(méi)有顯式初始化時(shí),系統(tǒng)用默認(rèn)值初始化對(duì)象的成員變量。6、每個(gè)類(lèi)通常有一個(gè)無(wú)參構(gòu)造方法。構(gòu)造方法(初始化)構(gòu)造方法(初始化) Java面向?qū)ο缶幊蘱 繼承繼承1、在Java中,定義類(lèi)時(shí)可以通過(guò)關(guān)鍵字extends繼承一個(gè)已有的類(lèi),被繼承的類(lèi)稱(chēng)為父類(lèi)(超類(lèi),基類(lèi)),新定義的類(lèi)稱(chēng)為子類(lèi)(派生類(lèi));繼承是“is a”的關(guān)系;2、在Java中,不允許多繼承;3、Java中Object類(lèi)是所有類(lèi)的父類(lèi);4、理解繼承是理解面向?qū)ο蟪绦蛟O(shè)計(jì)的關(guān)鍵,實(shí)現(xiàn)代碼復(fù)用,多態(tài)的基礎(chǔ)。繼承的概念繼承
4、的概念Java面向?qū)ο缶幊?1、子類(lèi)可以繼承父類(lèi)中被聲明為public、protected的成員變量和方法,不能繼承父類(lèi)中被聲明為private的成員變量和方法; 2、如果子類(lèi)聲明了一個(gè)與父類(lèi)同名的成員變量,則此時(shí)子類(lèi)擁有了兩個(gè)名字相同的成員變量,此時(shí)我們稱(chēng)子類(lèi)的成員變量隱藏了父類(lèi)的成員變量; 3、如果子類(lèi)聲明了一個(gè)與父類(lèi)同名的成員方法,此時(shí)我們稱(chēng)子類(lèi)的成員方法覆蓋了父類(lèi)的成員方法。 繼承原則繼承原則Java面向?qū)ο缶幊?帶有繼承的構(gòu)造方法帶有繼承的構(gòu)造方法1、子類(lèi)不能繼承父類(lèi)的構(gòu)造方法;2、如果子類(lèi)的構(gòu)造方法中沒(méi)有明確調(diào)用父類(lèi)的構(gòu)造方法,則系統(tǒng)在執(zhí)行子類(lèi)的構(gòu)造方法時(shí)會(huì)自動(dòng)調(diào)用父類(lèi)的無(wú)參構(gòu)造方
5、法;3、子類(lèi)構(gòu)造方法中顯示調(diào)用父類(lèi)的構(gòu)造方法,則調(diào)用語(yǔ)句必須是構(gòu)造方法的第一條語(yǔ)句。 Java面向?qū)ο缶幊蘳uper的使用的使用1、特殊變量super,提供了對(duì)父類(lèi)的訪問(wèn)。2、可以使用super訪問(wèn)父類(lèi)被子類(lèi)隱藏的變量或覆蓋的方法。3、每個(gè)子類(lèi)構(gòu)造方法的第一條語(yǔ)句,都是隱含地調(diào)用super(),如果父類(lèi)沒(méi)有這種形式的構(gòu)造函數(shù),那么在編譯的時(shí)候就會(huì)報(bào)錯(cuò)。 Java面向?qū)ο缶幊?、構(gòu)造方法只能通過(guò)以下方式被調(diào)用: 1)在程序中通過(guò)new語(yǔ)句調(diào)用它; 2)當(dāng)前類(lèi)的其他構(gòu)造方法通過(guò)this語(yǔ)句調(diào)用它 ; 3)當(dāng)前類(lèi)的子類(lèi)的構(gòu)造方法通過(guò)super語(yǔ)句調(diào)用它 。Java面向?qū)ο缶幊?靜態(tài)代碼塊是由關(guān)鍵字s
6、tatic引導(dǎo)的一對(duì)大括號(hào)括起的語(yǔ)句塊。靜態(tài)語(yǔ)句塊只執(zhí)行一次。作用是:在加載時(shí),初始化類(lèi)的靜態(tài)變量等。 與構(gòu)造方法相同,他們都是用來(lái)完成初始化的工作,但是靜態(tài)代碼塊與構(gòu)造方法有三點(diǎn)不同: 靜態(tài)代碼塊靜態(tài)代碼塊Java面向?qū)ο缶幊?1)構(gòu)造方法是對(duì)每個(gè)新創(chuàng)建的對(duì)象初始化,而靜態(tài)代碼塊是對(duì)類(lèi)自身進(jìn)行初始化。 2)構(gòu)造方法是在用new運(yùn)算符產(chǎn)生新對(duì)象時(shí)由系統(tǒng)自動(dòng)執(zhí)行,而靜態(tài)代碼塊則是在它所屬的類(lèi)加載到內(nèi)存時(shí)由系統(tǒng)調(diào)用執(zhí)行。 3)不同于構(gòu)造方法,靜態(tài)代碼塊不是方法,沒(méi)有方法名、返回值和參數(shù)列表。 Java面向?qū)ο缶幊?類(lèi)的組合類(lèi)的組合1、軟件中的對(duì)象有簡(jiǎn)單對(duì)象和復(fù)雜對(duì)象之分;2、復(fù)雜對(duì)象的數(shù)據(jù)成員可以
7、是引用類(lèi)型;3、組合就是將已經(jīng)存在的類(lèi)的對(duì)象放到新類(lèi)中,組合表示的“has a”的關(guān)系。 Java面向?qū)ο缶幊?Object類(lèi)類(lèi)1、Object是Java程序中所有類(lèi)的父類(lèi);2、Object類(lèi)中主要的方法:getClass()、toString()、equals(Object obj)、hashCode()、finalize();3、對(duì)象相等:兩個(gè)對(duì)象具有相同的類(lèi)型和相同的屬性值;對(duì)象同一:兩個(gè)引用指向同一個(gè)對(duì)象。如果兩個(gè)對(duì)象同一那么這兩個(gè)對(duì)象一定相等,反之不成立; 4、toString()、equals(Object obj)及“=”的使用。Java面向?qū)ο缶幊填?lèi)型類(lèi)型public無(wú)修飾符無(wú)
8、修飾符default同一包中的類(lèi)同一包中的類(lèi)不同包中的類(lèi)不同包中的類(lèi)類(lèi)修飾符與訪問(wèn)權(quán)限關(guān)系:類(lèi)修飾符與訪問(wèn)權(quán)限關(guān)系: 訪問(wèn)修飾符訪問(wèn)修飾符Java面向?qū)ο缶幊填?lèi)成員修飾符與訪問(wèn)權(quán)限關(guān)系:類(lèi)成員修飾符與訪問(wèn)權(quán)限關(guān)系:類(lèi)型類(lèi)型publicpublic無(wú)修飾符無(wú)修飾符protectedprotectedprivateprivate同一類(lèi)同一類(lèi)同一包中的子類(lèi)同一包中的子類(lèi)同一包中的非子類(lèi)同一包中的非子類(lèi)不同一包中的子類(lèi)不同一包中的子類(lèi)不同一包中的非子類(lèi)不同一包中的非子類(lèi)Java面向?qū)ο缶幊蘏tring和和StringBuffer1、String類(lèi)的兩種實(shí)例化對(duì)象的方式;2、Java面向?qū)ο缶幊蘏tri
9、ng和和StringBufferJava面向?qū)ο缶幊?、在類(lèi)中沒(méi)有方法體的方法,就是抽象方法。2、含有抽象方法的類(lèi),即為抽象類(lèi)。3、如果一個(gè)子類(lèi)沒(méi)有實(shí)現(xiàn)抽象基類(lèi)中所有的抽象方法,則子類(lèi)也成為一個(gè)抽象類(lèi)。4、我們可以將一個(gè)沒(méi)有任何抽象方法的類(lèi)聲明為abstract,避免由這個(gè)類(lèi)產(chǎn)生任何的對(duì)象。5、構(gòu)造方法、靜態(tài)方法、私有方法、final方法不能被聲明為抽象的方法。抽象方法和抽象類(lèi)抽象方法和抽象類(lèi)q 接口接口Java面向?qū)ο缶幊探涌诘母拍罱涌诘母拍?接口的兩種含義:一是Java接口,Java語(yǔ)言中存在的結(jié)構(gòu),有特定的語(yǔ)法和結(jié)構(gòu);二是一個(gè)類(lèi)所具有的方法的特征集合,是一種邏輯上的抽象。 Java中的接
10、口是一系列方法的聲明,是一些方法特征的集合,一個(gè)接口只有方法的特征沒(méi)有方法的實(shí)現(xiàn),因此這些方法可以在不同的地方被不同的類(lèi)實(shí)現(xiàn),而這些實(shí)現(xiàn)可以具有不同的行為。Java面向?qū)ο缶幊探涌诘亩x接口的定義訪問(wèn)修飾符非訪問(wèn)修飾符 class ClassName extends 超類(lèi)名稱(chēng)implements 接口名稱(chēng)列表方法聲明及方法體;接口的實(shí)現(xiàn)接口的實(shí)現(xiàn)訪問(wèn)修飾符 interface 接口名 extends 父接口列表 publicstaticfinal 常量; publicabstract 方法;Java面向?qū)ο缶幊?、接口中所有的方法都是public abstract,接口比抽象類(lèi)更抽象,不能實(shí)例
11、化對(duì)象。2、在接口中聲明方法時(shí),不能使用native、static 、final 、synchronized 、private 、protected等修飾符。3、和public類(lèi)一樣,public接口也必須定義在與接口同名的文件中。4、接口中可以有數(shù)據(jù)成員,這些成員默認(rèn)都是public static final。5、一個(gè)接口可以繼承自另一個(gè)接口。6、Java中不允許類(lèi)的多繼承,但允許接口的多繼承。7、在Java中,一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。8、一個(gè)類(lèi)在繼承另外一個(gè)類(lèi)的同時(shí),可以實(shí)現(xiàn)一個(gè)或者多個(gè)接口。 Java面向?qū)ο缶幊?塑形塑形引用類(lèi)型之間類(lèi)型轉(zhuǎn)換引用類(lèi)型之間類(lèi)型轉(zhuǎn)換1、引用類(lèi)型之間的轉(zhuǎn)換有三
12、種:轉(zhuǎn)化為父類(lèi)型,轉(zhuǎn)化為對(duì)象所屬類(lèi)實(shí)現(xiàn)的接口類(lèi)型,回到自己的類(lèi)型;2、基本數(shù)據(jù)類(lèi)型的轉(zhuǎn)換是從一種形式轉(zhuǎn)化為另一種形式的過(guò)程,而塑形是將并不是真正的類(lèi)型轉(zhuǎn)化,只是暫時(shí)將對(duì)象當(dāng)作另一種類(lèi)型對(duì)象來(lái)看待;3、塑形的應(yīng)用。 Java面向?qū)ο缶幊谭椒ㄖ剌d方法重載 重載構(gòu)成的條件:定義在同一個(gè)類(lèi)中方法的名稱(chēng)相同,但參數(shù)類(lèi)型,參數(shù)順序或參數(shù)個(gè)數(shù)不同,返回類(lèi)型無(wú)關(guān)緊要。 方法覆蓋方法覆蓋q 多態(tài)多態(tài)1、在子類(lèi)中定義一個(gè)與父類(lèi)同名、返回類(lèi)型、參數(shù)類(lèi)型均相同一個(gè)方法,稱(chēng)為方法的覆蓋。2、覆蓋發(fā)生在子類(lèi)與父類(lèi)之間。Java面向?qū)ο缶幊?、子類(lèi)不能覆蓋父類(lèi)中被聲明為final的方法;4、子類(lèi)必須覆蓋父類(lèi)中聲明為abst
13、ract的方法,或者子類(lèi)的方法也聲明為abstract;5、子類(lèi)覆蓋后的方法的訪問(wèn)權(quán)限一定大于或等于父類(lèi)中被覆蓋方法的訪問(wèn)權(quán)限;6、子類(lèi)覆蓋后的方法拋出的異常一定小于或等于父類(lèi)中被覆蓋方法拋出的異常。Java面向?qū)ο缶幊潭鄳B(tài)多態(tài)1、執(zhí)行對(duì)象方法時(shí),不知道一個(gè)對(duì)象在運(yùn)行時(shí)的具體類(lèi)型是什么,但是運(yùn)行是正確的,稱(chēng)為多態(tài)性;2、多態(tài)分為靜態(tài)多態(tài)和動(dòng)態(tài)多態(tài),分別有重載和覆蓋實(shí)現(xiàn),多態(tài)多指動(dòng)態(tài)多態(tài);2、通過(guò)覆蓋父類(lèi)的方法實(shí)現(xiàn)多態(tài),在運(yùn)行時(shí)根據(jù)傳遞的對(duì)象引用,來(lái)調(diào)用相應(yīng)的方法;3、當(dāng)我們將子類(lèi)對(duì)象傳遞給父類(lèi)聲明的對(duì)象時(shí),使用對(duì)象調(diào)用方法時(shí),如果子類(lèi)具有該方法,則執(zhí)行子類(lèi)的方法;如果子類(lèi)沒(méi)有該方法則執(zhí)行父類(lèi)的
14、方法;4、另外,接口也可以實(shí)現(xiàn)多態(tài)。Java面向?qū)ο缶幊虄?nèi)部類(lèi)的概念內(nèi)部類(lèi)的概念1、在一個(gè)類(lèi)中定義另外一個(gè)類(lèi),這個(gè)類(lèi)就叫做內(nèi)部類(lèi)或內(nèi)置類(lèi) (inner class) 。2、內(nèi)部類(lèi)可以讓我們將邏輯上相關(guān)的一組類(lèi)組織起來(lái),并由外部類(lèi)(outer class)來(lái)控制內(nèi)部類(lèi)的可見(jiàn)性,內(nèi)部類(lèi)可以訪問(wèn)外部類(lèi)的私有成員。3、當(dāng)我們建立一個(gè)內(nèi)部類(lèi)時(shí),其對(duì)象就擁有了與外部類(lèi)對(duì)象之間的一種關(guān)系,這是通過(guò)一個(gè)特殊的this reference形成的,使得內(nèi)部類(lèi)對(duì)象可以隨意的訪問(wèn)外部類(lèi)中所有的成員。q 內(nèi)部類(lèi)內(nèi)部類(lèi)Java面向?qū)ο缶幊?、實(shí)例內(nèi)部類(lèi)又稱(chēng)常規(guī)內(nèi)部類(lèi),在常規(guī)內(nèi)部類(lèi)不能聲明靜態(tài)的成員,只有在頂層類(lèi)或static的內(nèi)部類(lèi)中才可聲明static成員;2、在方法中定義的內(nèi)部類(lèi),稱(chēng)為局部?jī)?nèi)部類(lèi);如果要訪問(wèn)方法中定義的本地變量或方法的參數(shù),則變量必須被聲明final。3、內(nèi)部類(lèi)可以聲明為private
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 常州工程職業(yè)技術(shù)學(xué)院《高級(jí)阿拉伯語(yǔ)二》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆科技學(xué)院《外國(guó)史學(xué)名著選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 淮北理工學(xué)院《社會(huì)學(xué)原理類(lèi)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶智能工程職業(yè)學(xué)院《生物統(tǒng)計(jì)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 赤峰學(xué)院《教育史專(zhuān)題研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 梧州學(xué)院《現(xiàn)代舞創(chuàng)編》2023-2024學(xué)年第二學(xué)期期末試卷
- 東北林業(yè)大學(xué)《生物科學(xué)專(zhuān)業(yè)英語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西航空職業(yè)技術(shù)學(xué)院《攝影報(bào)道》2023-2024學(xué)年第二學(xué)期期末試卷
- 合肥共達(dá)職業(yè)技術(shù)學(xué)院《現(xiàn)代電子測(cè)量技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古工業(yè)大學(xué)《概率論與數(shù)據(jù)統(tǒng)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國(guó)聚乙烯催化劑行業(yè)發(fā)展?fàn)顩r及需求規(guī)模預(yù)測(cè)研究報(bào)告(2024-2030版)
- 新能源汽車(chē)驅(qū)動(dòng)電機(jī)及控制系統(tǒng)檢修課件 學(xué)習(xí)情境4:電的轉(zhuǎn)換
- 車(chē)輛實(shí)際使用權(quán)協(xié)議書(shū)范文模板
- 新版加油站全員安全生產(chǎn)責(zé)任制
- 腦出血課件完整版本
- 涼山州小學(xué)數(shù)學(xué)教師業(yè)務(wù)素質(zhì)考試試題(真題+訓(xùn)練)
- 長(zhǎng)護(hù)險(xiǎn)定點(diǎn)機(jī)構(gòu)自查報(bào)告
- GB/T 6003.2-2024試驗(yàn)篩技術(shù)要求和檢驗(yàn)第2部分:金屬穿孔板試驗(yàn)篩
- 2025年初中地理八年級(jí)上冊(cè)全冊(cè)重點(diǎn)知識(shí)點(diǎn)復(fù)習(xí)課件
- 人工智能大模型
- 川教版信息技術(shù)五年級(jí)下冊(cè)全冊(cè)教學(xué)設(shè)計(jì)教案
評(píng)論
0/150
提交評(píng)論