第05章05 面向?qū)ο笊蟔第1頁
第05章05 面向?qū)ο笊蟔第2頁
第05章05 面向?qū)ο笊蟔第3頁
第05章05 面向?qū)ο笊蟔第4頁
第05章05 面向?qū)ο笊蟔第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、05.面向?qū)ο?上)講師:瘋狂軟件 本章要點(diǎn)定義類的語法格式對象的創(chuàng)建和使用方法詳解成員變量和局部變量隱藏與封裝深入理解構(gòu)造器繼承與多態(tài)繼承與組合初始化塊瘋狂軟件 定義類定義類的語法格式:修飾符 class 類名 .類體.類體可以由多個(gè)屬性、方法、構(gòu)造器組成。注意:類的修飾符可以是public、final 或省略這兩個(gè)。類名只要是合法的標(biāo)識符.一個(gè)類里可以包含三種最常見的成員:構(gòu)造器、屬性、方法。瘋狂軟件 定義屬性的格式語法修飾符 屬性類型 屬性名 = 默認(rèn)值;瘋狂軟件 定義方法的格

2、式語法修飾符 方法返回值類型 方法名(形參列表) .方法體.方法中的修飾符可以是public ,protected,private,static,final,abstract,其中訪問控制符只能出現(xiàn)一個(gè),abstract ,final 只能出現(xiàn)其一.返回值類型可以是基本類型和引用類型,如果無返回值, 要用void 來聲明形參列表,可以由零到多組組成,參數(shù)之間用逗號(“,”)隔開.static 是一個(gè)特殊的關(guān)鍵字,譯為”靜態(tài)”,所有有static 修飾的叫類屬性,類方法,類成員.瘋狂軟件 定義構(gòu)造器的語法格式修飾符 構(gòu)造器名(形參列表) 修飾符可以是public pr

3、otected private 構(gòu)造器必須和類名相同,形參和方法的形參一樣.瘋狂軟件 對象的產(chǎn)生和使用創(chuàng)建對象的根本途徑就是構(gòu)造器,所以創(chuàng)建對象通過關(guān)鍵字new 加上對應(yīng)的構(gòu)造器即可.如果訪問權(quán)限允許,類里定義的屬性和方法可以通過類或?qū)嵗齺碚{(diào)用,有static 修飾的訪求和屬性,既可通過類來調(diào)用,也可以通過實(shí)例來調(diào)用.瘋狂軟件 對象.引用和指針Person p = new Person();,這行代碼創(chuàng)建了一個(gè)Person 實(shí)例,也被稱為對象,這個(gè)對象被賦給了p變量.也就是說引用型變量里存放的僅僅是一個(gè)引用,它指向?qū)嶋H的對象.瘋狂軟件 w

4、對象的this 引用this 關(guān)鍵字總是指向調(diào)用該方法的對象. 1.構(gòu)造器中引用該構(gòu)造器執(zhí)行初始化的對象 2.在方法中引用調(diào)用該方法的對象在方法里的this 指誰調(diào)用就指誰注: this 不能用在有static 修飾的方法中.瘋狂軟件 方法的詳解方法的所屬性 一旦將一個(gè)方法定義在一個(gè)類里,如果用static 修飾了,這個(gè)方法屬于這個(gè)類,否則屬于這個(gè)類的對象. 方法不能獨(dú)立執(zhí)行,必須要有調(diào)用者.(如:類.方法、對象.方法) 方法不能獨(dú)立定義,只能定義在類里. 方法要么屬于一個(gè)類,要么屬于一個(gè)對象瘋狂軟件 方法的參數(shù)

5、傳遞機(jī)制傳遞方式只有一種:值傳遞.瘋狂軟件 形參長度可變的方法如果在定義方法時(shí),在最后一個(gè)參數(shù)的類型后增加三點(diǎn),則表明該形參接受多個(gè)參數(shù)值,多個(gè)參數(shù)值被當(dāng)成數(shù)組傳入.長度可變的形參只能位于最后一個(gè)參數(shù),并一個(gè)方法里只能有一個(gè)可變長度的參數(shù).瘋狂軟件 遞歸遞歸就是在方法中再次調(diào)用自己。遞歸一定要向已知方向遞歸.瘋狂軟件 方法的重載Java 允許在一個(gè)類里定義多個(gè)同名方法,只要形參列表不同即可.所以方法的重載只要滿足兩個(gè)條件(兩同一不同):1.同一個(gè)類中,方法名相同;2.形參不同。和返回值類型無關(guān).所以在調(diào)用這些方

6、法時(shí)要傳入不同的參數(shù)值.瘋狂軟件 成員變量和局部變量成員變量指的是在類范圍里定義的變量;局部變量指的是在一個(gè)方法內(nèi)定義的變量。不管是成員變量還是局部變量都遵守相同的命名規(guī)則。成員變量分為類屬性和實(shí)例屬性.對于類屬性無論通過類還是對象來訪問都是訪問同一個(gè)對象,只要一個(gè)對象改變了類屬性,那么其他對象對應(yīng)的類屬性也改變了.成員變量不用顯式初始化,只要定義了一個(gè)類屬性或?qū)嵗龑傩?系統(tǒng)默認(rèn)進(jìn)行初始化。瘋狂軟件 局部變量局部變量可分為三種: 形參 方法局部變量 代碼塊局部變量.與成員變量不同的是除了形參外,其他局部變量都必須顯式地初始化,Java 里

7、允許局部變量和成員變量重名。這樣局部變量會覆蓋成員變量,這時(shí)通過this 來調(diào)用實(shí)例的屬性.瘋狂軟件 成員變量的初始化當(dāng)類被加載時(shí),類成員就在內(nèi)存中分配了一塊空間。當(dāng)對象被創(chuàng)建時(shí),實(shí)例成員就在內(nèi)存中分配了內(nèi)存空間。實(shí)例變量與實(shí)例共存亡;類變量與類本身共存亡。瘋狂軟件 局部變量的運(yùn)行機(jī)制局部變量僅在方法內(nèi)有效。當(dāng)方法執(zhí)行完成時(shí),局部變量便會自動銷毀。瘋狂軟件 封裝理解封裝:封裝是面向?qū)ο蟮娜筇卣髦?。封裝包含兩方面含義: 合理隱藏。 合理暴露。瘋狂軟件 使用訪問控制符private

8、私有的。在同一個(gè)類里能被訪問。default 默認(rèn)的。包訪問權(quán)限protected 受保護(hù)的。子類中也能訪問public 公共的。在任何地方都可以訪問瘋狂軟件 package 和 importpackage 打包格式:package 包名;放在程序開始的頂端。包機(jī)制的兩個(gè)方面的保證。1.源文件里要使用package 語句指定包。2.class 文件必須放在對應(yīng)的路徑下。import 引入包格式。分為兩種: 非靜態(tài)導(dǎo)入,導(dǎo)入的是包下所有的類。如:import package.subpackage.*; 靜態(tài)導(dǎo)入,導(dǎo)入的是類的靜態(tài)屬性。如:import static p

9、ackage.className.*;瘋狂軟件Java 的常用包java.lang.*,java.util.*, .* , java.io.*, java.text.*, java.sql.*, java.awt.*,java.swing.*.瘋狂軟件 使用構(gòu)造器執(zhí)行初始化構(gòu)造器最大的用處就是在創(chuàng)建對象時(shí)執(zhí)行初始化,系統(tǒng)會默認(rèn)的進(jìn)行初始化。如果程序員沒有Java 類提供任何構(gòu)造器, 則系統(tǒng)會為這個(gè)類提供一個(gè)無參的構(gòu)造器。一旦程序員提供了自定義的構(gòu)造器,遇系統(tǒng)不再提供默認(rèn)的構(gòu)造器。瘋狂軟件 構(gòu)造器

10、的重載構(gòu)造器的重載和方法的重載一樣,都是方法名相同,形參列表不相同。在構(gòu)造器中可通過this來調(diào)用另外一個(gè)重載的構(gòu)造器。瘋狂軟件 繼承的特點(diǎn)Java通過關(guān)鍵字extends來實(shí)現(xiàn),實(shí)現(xiàn)繼承的類稱為子類,被繼承的類稱為基類、超類、父類。父類是大類,子類是小類。Java的繼承是單繼承,每個(gè)子類最多只有一個(gè)直接父類。瘋狂軟件 繼承子類繼承父類的語法格式如下:修飾符 class subclass extends superclass。子類擴(kuò)展了父類,將可以獲得父類的全部屬性和方法,但不能獲得父類構(gòu)造器Java里的繼承都是單繼承,也就是只能有一個(gè)直

11、接的父類,可以有n個(gè)間接父類。瘋狂軟件 重寫父類的方法方法的重寫要遵循“兩同兩小一大” 指的是:方法名相同,形參列表相同。返回值類型更小或相同,拋出的異常更小或相同, 訪問控制權(quán)限要更大。瘋狂軟件 父類實(shí)例的super限定通過關(guān)鍵字super 來調(diào)用父類的方法或?qū)傩?。瘋狂軟?super調(diào)用父類的構(gòu)造器子類構(gòu)造器總會調(diào)用父類構(gòu)造器。如果子類構(gòu)造器沒有顯式使用super調(diào)用父類構(gòu)造器;子類構(gòu)造器默認(rèn)會調(diào)用父類無參數(shù)的構(gòu)造器。創(chuàng)建一個(gè)子類實(shí)例時(shí),總會先調(diào)用最頂層父類的構(gòu)造器。瘋狂軟件 多

12、態(tài)性Java 引用變量有兩個(gè)類型:一個(gè)是編譯時(shí)的類型,一個(gè)是運(yùn)行時(shí)的類型,編譯時(shí)的類型由聲明該變量時(shí)使用的類型決定,運(yùn)行時(shí)的類型由實(shí)際賦給該變量的對象決定。如果編譯時(shí)類型和支行時(shí)的類型不一致, 這就有可能出現(xiàn)所謂的多態(tài)。兩個(gè)相同類型的引用變量,由于它們實(shí)際引用的對象的類型不同,當(dāng)它們調(diào)用同名方式時(shí),可能呈現(xiàn)出多種行為特征,這就是多態(tài)。瘋狂軟件 引用變量的類型轉(zhuǎn)換將一個(gè)子類對像賦給父類,這就是向上轉(zhuǎn)型。向上轉(zhuǎn)型是自動的。強(qiáng)制類型轉(zhuǎn)換: 類型轉(zhuǎn)換運(yùn)算符是小括號, 語法如下(type)variable;瘋狂軟件 instanceof運(yùn)算符前一個(gè)操作通常是一個(gè)引用類型的變量,后一個(gè)操作通常是一個(gè)類(也可以是接口)。如果是返回true 否返回false。瘋狂軟件 繼承和組合使用繼承的注意點(diǎn)利用組合實(shí)現(xiàn)復(fù)用:總之,繼承要表達(dá)的是一種“是(is-a)”的關(guān)系,而組合表達(dá)的是”有(has-a)“的關(guān)系。瘋狂軟件 初始化塊使用初始化塊:初始化塊由大括號括起,只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論