




已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
java面向?qū)ο缶幊?本章內(nèi)容 了解面向?qū)ο笳莆疹惖亩x掌握類的實(shí)例化會(huì)使用幫助文檔掌握面向?qū)ο蟮娜筇卣魇炀殤?yīng)用繼承 重寫 重載掌握訪問修飾符掌握關(guān)鍵字static this掌握包的定義 傳統(tǒng)編程的缺點(diǎn) 軟件重用性差軟件可維護(hù)性差開發(fā)出的軟件不能滿足用戶需要 面向?qū)ο?面向?qū)ο笫且环N軟件開發(fā)過程中的指導(dǎo)思想和系統(tǒng)方法所謂面向?qū)ο缶褪腔趯?duì)象概念 以對(duì)象為中心 以類和繼承為構(gòu)造機(jī)制 來認(rèn)識(shí) 理解 刻畫客觀世界和設(shè)計(jì) 構(gòu)建相應(yīng)的軟件系統(tǒng) 三大特征 封裝繼承多態(tài) 面向?qū)ο缶幊?OOP ObjectedOrientedProgramming 面向?qū)ο缶幊陶莆彰嫦驅(qū)ο蟮睦щy之處在于思路的轉(zhuǎn)換我們通常習(xí)慣于考慮解決問題的方法 而不是考慮將問題抽象成對(duì)象再去解決它 對(duì)象對(duì)象的狀態(tài)對(duì)象的行為 我們可以把現(xiàn)實(shí)世界的事物抽象成對(duì)象 對(duì)象一般都有兩個(gè)特征 狀態(tài)和行為 也叫屬性和動(dòng)作 軟件的對(duì)象概念是由現(xiàn)實(shí)世界對(duì)象抽象而來 把現(xiàn)實(shí)世界對(duì)象的狀態(tài)保存在軟件對(duì)象的變量中 現(xiàn)實(shí)世界對(duì)象的行為通過軟件對(duì)象的方法 函數(shù) 來實(shí)現(xiàn) 類與對(duì)象 把相似的對(duì)象劃歸成一個(gè)類 類是概念模型 定義對(duì)象的所有屬性和行為 類是具有共同屬性和行為的對(duì)象的抽象 對(duì)象是存在的具體實(shí)體 具有明確定義的狀態(tài)和行為 類與對(duì)象 上帝造人上帝首先想象出人的樣子 設(shè)計(jì)階段 類 模子 有性別 頭 身子 會(huì)走路 吃飯 上帝根據(jù)想象捏了個(gè)人 實(shí)施階段 對(duì)象 實(shí)例 亞當(dāng)誕生了 類的屬性和方法屬性 類的變量 成員行為 類的方法 函數(shù) 我們是上帝 先設(shè)計(jì)類 再實(shí)現(xiàn)為對(duì)象學(xué)生類屬性 姓名 性別 年齡 班級(jí)行為 說話 吃飯 上學(xué) 放學(xué) 類與對(duì)象 姓名 張三年齡 27工資 xxx教齡 8年授課方向 java體重 60千克行為 授課 評(píng)分 姓名 李四年齡 25工資 xxx教齡 9年授課方向 java體重 80千克行為 授課 評(píng)分 抽象 講師類 屬性 方法 授課 評(píng)分 姓名年齡體重工資 類與對(duì)象 從程序設(shè)計(jì)的角度看 類是面向?qū)ο蟪绦蛑凶罨镜某绦騿卧?類實(shí)質(zhì)上定義的是一種數(shù)據(jù)類型 這種數(shù)據(jù)類型就是對(duì)象類型 所以我們可以使用類名稱來聲明對(duì)象變量 聲明對(duì)象變量之后 還不能使用對(duì)象 必須用運(yùn)算符new創(chuàng)建對(duì)象實(shí)體之后 才能使用對(duì)象 類的定義 訪問修飾符 class類名 類型變量名 返回值類型方法名 參數(shù)列表 方法內(nèi)容 屬性 成員變量操作 成員函數(shù) 方法 成員方法 對(duì)象行為或操作 成員變量 對(duì)象屬性 類的組成 類的基本組成getter setter方法如果類的成員變量的名字是xxx 那么為了更改或獲取成員變量的值 即更改或獲取屬性 在類中可以使用兩個(gè)方法 getXxx 用來獲取屬性xxx setXxx 用來修改屬性xxx 類的聲明 變量聲明 構(gòu)造方法聲明 方法聲明 類中的構(gòu)造函數(shù) 特點(diǎn)方法名必須和類名相同 且沒有返回值 作用執(zhí)行對(duì)象初始化 缺省構(gòu)造方法如果沒有顯式定義構(gòu)造函數(shù) 系統(tǒng)會(huì)提供一個(gè)默認(rèn)的無參構(gòu)造函數(shù) 類名 一旦顯式定義了構(gòu)造函數(shù) 不論有參數(shù)還是無參數(shù) 系統(tǒng)將不再提供默認(rèn)構(gòu)造函數(shù) 種類無參構(gòu)造函數(shù)帶參數(shù)構(gòu)造函數(shù) 創(chuàng)建對(duì)象 創(chuàng)建對(duì)象 new構(gòu)造函數(shù)new 創(chuàng)建運(yùn)算符 創(chuàng)建新的實(shí)例并分配內(nèi)存 將實(shí)例初始化為缺省值 數(shù)字0對(duì)象null布爾值false字符 0 返回對(duì)象的引用 當(dāng)創(chuàng)建一個(gè)類時(shí) 只是創(chuàng)建了一種新的數(shù)據(jù)類型 對(duì)象是類的一個(gè)實(shí)例 類變量 面向?qū)ο蟮娜筇卣?封裝繼承多態(tài) 面向?qū)ο?封裝 java的類是對(duì)函數(shù)和變量的封裝 封裝讓細(xì)節(jié)隱藏 讓人更好地關(guān)注應(yīng)用 封裝可以實(shí)現(xiàn)該公開的公開 該隱藏的隱藏通過訪問修飾符實(shí)現(xiàn) 面向?qū)ο?封裝 訪問限制符 public private protected 默認(rèn)訪問限制符標(biāo)明屬性或方法是否可以被調(diào)用public 公開 都可以訪問 private 私有 只可在類內(nèi)訪問 外部不可訪問 protected 受保護(hù)的 可被子類和同一個(gè)包里的其他類訪問 默認(rèn)friendly 同一個(gè)包里的其他類可以訪問原則 字段和方法能私有的盡量私有 對(duì)私有屬性通過公有的方法來訪問 面向?qū)ο?封裝 訪問修飾符總結(jié) 面向?qū)ο?繼承 繼承是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制 這是類之間的一種關(guān)系 繼承讓軟件復(fù)用和功能擴(kuò)展更容易實(shí)現(xiàn)在繼承關(guān)系下 原始的類叫父類 派生出來的類叫子類或派生類 java只支持單繼承 通過關(guān)鍵字extends完成繼承子類完全擁有父類的全部方法和屬性 可以定義自己的方法和屬性 可以重寫父類的方法 classAextendsB類A繼承類B例 繼承JFrame 重寫其setTitle 方法 面向?qū)ο?繼承 Object類所有類的超類 superclass 如果一個(gè)類沒有顯示使用extends繼承某個(gè)類 則自動(dòng)繼承自O(shè)bject類supersuper 代表父類調(diào)用父類方法 super 方法 super 總是引用直接父類的構(gòu)造方法 面向?qū)ο?繼承 繼承注意事項(xiàng)在子類中不能直接訪問父類中的私有成員子類和父類之間應(yīng)該有 IS A 關(guān)系不要濫用繼承 只有在分類學(xué)上有意義時(shí) 才應(yīng)該使用繼承子類具有擴(kuò)展父類的責(zé)任繼承的目的就是為了代碼復(fù)用 面向?qū)ο?繼承 構(gòu)造函數(shù)的調(diào)用順序從超類到子類無論用到super 與否 都是先調(diào)用超類構(gòu)造函數(shù) 再調(diào)用子類構(gòu)造函數(shù)如果沒用到super 將調(diào)用超類系統(tǒng)默認(rèn)的或沒有參數(shù)的構(gòu)造函數(shù) 面向?qū)ο?多態(tài) 多態(tài)多態(tài)性是指相同的操作或函數(shù) 過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果 不同的對(duì)象 收到同一消息可以產(chǎn)生不同的結(jié)果 這種現(xiàn)象稱為多態(tài)性 兩種方式方法重載一個(gè)類中出現(xiàn)多個(gè)同名方法 方法重寫子類重新書寫父類的方法 面向?qū)ο?多態(tài) 重載 overloading 概述是java實(shí)現(xiàn)面向?qū)ο蟮亩鄳B(tài)性機(jī)制的一種方式 同一個(gè)類中多個(gè)方法有相同的名字 不同的參數(shù)列表 這種情況稱為方法重載 當(dāng)重載方法被調(diào)用時(shí) 編譯器根據(jù)參數(shù)的類型和數(shù)量來確定實(shí)際調(diào)用哪個(gè)重載方法的版本重載方式參數(shù)順序不同參數(shù)類型不同參數(shù)個(gè)數(shù)不同返回值不同不能實(shí)現(xiàn)重載 面向?qū)ο?多態(tài) 方法重載示例 classCalculation publicvoidadd inta intb intc a b System out println 兩個(gè)整數(shù)相加得 c publicvoidadd floata floatb floatc a b System out println 兩個(gè)浮點(diǎn)數(shù)相加得 c publicvoidadd Stringa Stringb Stringc a b System out println 兩個(gè)字符串相加得 c classCalculationDemo publicstaticvoidmain Stringargs Calculationc newCalculation c add 10 20 c add 40 0F 35 65F c add 早上 好 編譯器決定調(diào)用版本 面向?qū)ο?多態(tài) 方法重寫 Overriding 方法重寫是發(fā)生在子類與父類之間多態(tài)性的一種表現(xiàn)在子類中定義某方法與其父類有相同的名稱和參數(shù) 且方法的返回值類型與拋出異常的類型各自與父類的一致 我們說該方法被重寫 Overriding 子類的對(duì)象使用這個(gè)方法時(shí) 將調(diào)用子類中的定義 對(duì)它而言 父類中的定義如同被 屏蔽 了在子類中調(diào)用父類被重寫的方法使用super關(guān)鍵詞 static關(guān)鍵字 靜態(tài)方法通常 在一個(gè)類中定義一個(gè)方法為static 那就是說 無需本類的對(duì)象即可調(diào)用此方法 如下所示 調(diào)用靜態(tài)方法就是 類名 方法名 如 Animal eat 一般來說 靜態(tài)方法常常為應(yīng)用程序中的其它類提供一些實(shí)用工具所用 在java的類庫中大量的靜態(tài)方法正是出于此目的而定義的 classAnimal publicstaticvoideat System out println 動(dòng)物吃 static關(guān)鍵字 靜態(tài)塊靜態(tài)塊是在類被調(diào)用到內(nèi)存后就開始執(zhí)行的 它和創(chuàng)建對(duì)象或者main方法都沒有關(guān)系 區(qū)分是構(gòu)造方法和靜態(tài)塊執(zhí)行 static 執(zhí)行內(nèi)容 publicclassStaticBlock1 static System out println staticblock publicstaticvoidmain String args static關(guān)鍵字 靜態(tài)屬性所有此類實(shí)例共享此靜態(tài)屬性 也就是說在類加載時(shí) 只分配一塊存儲(chǔ)空間 所有此類的對(duì)象都可以操控此塊存儲(chǔ)空間 當(dāng)然對(duì)于final則另當(dāng)別論了 看下面這段代碼 classAnimal intage 0 staticintfoodCount 0 publicstaticvoidmain String args Animalcat newAnimal Animaldog newAnimal 打印catdog的age foodCount 修改cat的age和foodCount 打印catdog的age foodCount 修改dog的age和foodCount 打印catdog的age foodCount 結(jié)論 應(yīng)用地點(diǎn) 訪問 類名 屬性名 this關(guān)鍵字 this可以看成是一個(gè)變量 每一個(gè)對(duì)象都會(huì)自動(dòng)保存一個(gè)變量this 它指向這個(gè)對(duì)象自己 使用this在構(gòu)造函數(shù)中調(diào)用本類其它重載的構(gòu)造函數(shù) 語法 在方法中調(diào)用屬性 語法 this 或者this 參數(shù)列表 this 實(shí)例變量名 java語言的包 包是一種松散的類的集合 通常把需要在一起工作的類 互相訪問 放入一個(gè)包包在較大的范圍內(nèi)實(shí)現(xiàn)了OOP的封裝機(jī)制 它把一組類和接口封裝在一個(gè)包之內(nèi) 這為管理大量的類和接口提供了方便 也有利于這些類和接口的安全java編譯器將包與文件系統(tǒng)的目錄一一對(duì)應(yīng)起來 java lang packagejava lang java語言的包 package語句必須是文件中的第一條語句 也就是說 在package語句之前 除了空白和注釋之外不能有任何語句 如果不加package語句 則指定為缺省包或無名包 包對(duì)應(yīng)著文件系統(tǒng)的目錄層次結(jié)構(gòu) 在package語句中 用 來指明包 目錄 的層次 java的默認(rèn)包為java lang包 包的應(yīng)用 創(chuàng)建自己的包 文件夾 package包名 包名一般小寫 放在文件開頭 如com 公司名 項(xiàng)目使用包java lang包中的類將被自動(dòng)導(dǎo)入其它包中的類可以寫 import包名 類名頻繁使用的類 可以在文件開頭導(dǎo)入 import 整個(gè)包 使用包名類名前綴java util Vectorvector newjava util Vect
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 股權(quán)捐贈(zèng)協(xié)議書
- 在農(nóng)村分家分房協(xié)議書
- 租賃空調(diào)協(xié)議書
- 菜籽收購協(xié)議書
- 職工派遣協(xié)議書
- 桌游店入股合同協(xié)議書
- 電梯索賠協(xié)議書
- 美國垃圾協(xié)議書
- 資料委托協(xié)議書
- 股東陽光協(xié)議書
- 國有企業(yè)雙重目標(biāo)導(dǎo)向與雙軌治理機(jī)制的研究進(jìn)展及前景展望
- 浙江省寧波市2024學(xué)年第二學(xué)期高考與選考模擬考試化學(xué)試卷及答案(寧波二模)
- 國開電大軟件工程形考作業(yè)3參考答案 (二)
- 棋牌轉(zhuǎn)讓免責(zé)協(xié)議書
- 歷城二中生物試卷及答案
- 夏季高溫施工安全防暑降溫
- 2025屆天津楊村一中高三-化學(xué)試卷
- 不孕癥婦女的護(hù)理課件
- 新版工程開工報(bào)告表格
- TCHSA 079-2024 唇腭裂患者替牙期錯(cuò)牙合畸形矯治指南
- 軌道交通電工基本技能與實(shí)訓(xùn)課件 項(xiàng)目7 三相異步電動(dòng)機(jī)點(diǎn)動(dòng)和連續(xù)運(yùn)行控制電路安裝與調(diào)試
評(píng)論
0/150
提交評(píng)論