java oopppt課件_第1頁
java oopppt課件_第2頁
java oopppt課件_第3頁
java oopppt課件_第4頁
java oopppt課件_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟮腏ava實現(xiàn) 封裝 第一章 2 課程地位 3 相關(guān)課程回顧 publicclassTest publicstaticvoidmain String args for inti 0 i 10 i System out println i System out println i 10 請舉例說明類與對象的區(qū)別與聯(lián)系 超出了變量i的訪問范圍 請指出下列Java代碼中存在的錯誤 并改正 4 就業(yè)技能結(jié)構(gòu)圖 5 預(yù)習檢查 舉例說明什么是方法重載 Java中的構(gòu)造方法與實例方法 有什么區(qū)別 6 本章任務(wù) 升級HelloACCP 輸出ACCP5 0教員的自我介紹 對屬性進行封裝用構(gòu)造方法實現(xiàn)對象成員的初始化對構(gòu)造方法進行重載 7 理解封裝的概念掌握private關(guān)鍵字掌握構(gòu)造方法掌握方法重載 本章目標 8 為什么需要封裝2 1 編寫一個類 代表ACCP5 0教員 要求 具有屬性 姓名 年齡具有行為 自我介紹ACCP5 0教員的最小年齡要求 22歲 publicclassAccpTeacher1 publicStringname 教員姓名publicintage 年齡 返回自我介紹的內(nèi)容 publicStringintroduction return 大家好 我是 name 我今年 age 歲 9 為什么需要封裝2 2 編寫一個測試類 要求 實例化一個教員對象 并對其初始化在控制臺輸出該教員的自我介紹 publicclassAccpTeacher1Test publicstaticvoidmain String args AccpTeacher1teacher newAccpTeacher1 teacher name 李芳 teacher age 10 System out println teacher introduction 要滿足教員的最小年齡要求 可以通過對屬性的封裝來實現(xiàn) 10 什么是封裝 publicclassAccpTeacher2 privateStringname 教員姓名 返回教員姓名publicStringgetName returnname 設(shè)定教員姓名publicvoidsetName Stringname this name name 封裝 就是隱藏實現(xiàn)細節(jié)將屬性私有化 提供公有方法訪問私有屬性通過這些公有方法訪問私有屬性 AccpTeacher2teacher newAccpTeacher2 teacher setName 李芳 StringtName teacher getName 通過setter getter方法訪問name屬性 this代表當前類的實例 11 如何實現(xiàn)封裝2 1 封裝的實現(xiàn) 1 修改屬性的可見性來限制對屬性的訪問2 為每個屬性創(chuàng)建一對賦值 setter 方法和取值 getter 方法 用于對這些屬性的訪問3 在setter和getter方法中 加入對屬性的存取限制 publicclassAccpTeacher3 privateStringname 教員姓名privateintage 年齡publicintgetAge returnage publicvoidsetAge intage if age 22 System out println 錯誤 最小年齡應(yīng)為22歲 this age 22 如果不符合年齡要求 則賦予默認值 else this age age 此處省略對name屬性的setter getter方法 1 2 3 12 如何實現(xiàn)封裝2 2 publicclassAccpTeacher3Test publicstaticvoidmain String args AccpTeacher3teacher newAccpTeacher3 teacher setName 李芳 teacher setAge 10 System out println teacher introduction 使用封裝 增加了數(shù)據(jù)訪問限制 增強了程序的可維護性 錯誤 最小年齡應(yīng)為22歲 大家好 我是李芳 我今年22歲 測試類通過調(diào)用setter方法 為對象的各個屬性賦值 13 小結(jié)1 使用private關(guān)鍵字修飾某個成員變量后 這個成員變量可以被同一包中的其它類訪問嗎 在Java程序中 代碼封裝帶給我們的好處是什么 14 小結(jié)2 請通過代碼封裝 實現(xiàn)如下需求 編寫一個類Book 代表教材 具有屬性 名稱 title 頁數(shù) pageNum 其中頁數(shù)不能少于200頁 否則輸出錯誤信息 并賦予默認值200為各屬性設(shè)置賦值和取值方法具有方法 detail 用來在控制臺輸出每本教材的名稱和頁數(shù)編寫測試類BookTest進行測試 為Book對象的屬性賦予初始值 并調(diào)用Book對象的detail方法 看看輸出是否正確 完整代碼實現(xiàn) 15 為什么需要構(gòu)造方法2 1 開發(fā)ACCP5 0教員類AccpTeacher4 要求 具有屬性 姓名 年齡 學歷 職位具有行為 自我介紹 publicclassAccpTeacher4 privateStringname 姓名privateintage 年齡privateStringeducation 學歷privateStringposition 職位publicStringintroduction return 大家好 我是 name 我今年 age 歲 學歷 education 目前職位是 position publicStringgetName returnname publicvoidsetName StringmyName name myName 以下是其他屬性的setter getter方法 此處省略 16 為什么需要構(gòu)造方法2 2 編寫一個測試類 要求 實例化一個教員對象 并對其初始化在控制臺輸出該教員的自我介紹 publicclassAccpTeacher4Test publicstaticvoidmain String args AccpTeacher4teacher newAccpTeacher4 teacher setName 李芳 teacher setAge 23 teacher setEducation 本科 System out println teacher introduction 要簡化對象初始化的代碼 可以通過構(gòu)造方法來解決 大家好 我是李芳 我今年23歲 學歷本科 目前職位是null AccpTeacher4中有太多的屬性及對應(yīng)的setter方法 在初始化時 很容易就忘記了 有沒有可能簡化對象初始化的代碼 17 什么是構(gòu)造方法 構(gòu)造方法負責對象成員的初始化工作 為實例變量賦予合適的初始值構(gòu)造方法必須滿足以下語法規(guī)則 1 方法名與類名相同2 沒有返回類型 publicclassAccpTeacher5 privateStringname 教員姓名 構(gòu)造方法publicAccpTeacher5 name 無名氏 publicclassAccpTeacher5Test publicstaticvoidmain String args AccpTeacher5teacher newAccpTeacher5 使用new關(guān)鍵字調(diào)用構(gòu)造方法 18 帶參數(shù)的構(gòu)造方法2 1 通過帶參數(shù)的構(gòu)造方法 顯式地為實例變量賦予初始值 publicclassAccpTeacher6 privateStringname 教員姓名privateintage 年齡privateStringeducation 學歷privateStringposition 職位 帶參數(shù)的構(gòu)造方法publicAccpTeacher6 StringpName intpAge StringpEducation StringpPosition name pName age pAge 可以增加對age等屬性的存取限制條件education pEducation position pPosition publicStringintroduction return 大家好 我是 name 我今年 age 歲 學歷 education 目前職位是 position 19 帶參數(shù)的構(gòu)造方法2 2 通過調(diào)用帶參數(shù)的構(gòu)造方法 簡化對象初始化的代碼 publicclassAccpTeacher6Test publicstaticvoidmain String args AccpTeacher6teacher newAccpTeacher6 李芳 23 本科 咨詢師 System out println teacher introduction 創(chuàng)建對象時 一并完成了對象成員的初始化工作 大家好 我是李芳 我今年23歲 學歷本科 目前職位是咨詢師 20 小結(jié)3 編寫一個類Book2 代表教材 具有屬性 名稱 title 頁數(shù) pageNum 其中頁數(shù)不能少于200頁 否則輸出錯誤信息 并賦予默認值200具有方法 detail 用來在控制臺輸出每本教材的名稱和頁數(shù) 具有帶參數(shù)的構(gòu)造方法 用來完成對象的初始化工作 并在構(gòu)造方法中完成對頁數(shù)的最小值限制編寫測試類Book2Test進行測試 初始化一個Book2對象 并調(diào)用該Book2對象的detail方法 看看輸出是否正確 完整代碼實現(xiàn) 21 生活中的方法重載 類 方法 方法參數(shù) 方法實現(xiàn) 司機 轎車 巴士 火車 駕駛 啟動 行駛 等待乘客上車 啟動 行駛 到站停車 正點發(fā)車 行駛 到站停車 如果用代碼實現(xiàn) 我們需要三個方法 這些方法的方法名稱相同 參數(shù)類型不同 22 方法重載的代碼示例1 方法重載并不陌生java io PrintStream類的println方法能夠打印數(shù)據(jù)并換行 根據(jù)數(shù)據(jù)類型的不同 有多種實現(xiàn)方式 publicclassTest publicstaticvoidmain String args inti 0 charc z Stringstr hello System out println i System out println c System out println str PrintStream println int println char println String 方法名相同 參數(shù)類型不同 調(diào)用不同的println方法 方法重載 23 方法重載的代碼示例2 java lang Math類的max 方法能夠從兩個數(shù)字中取出最大值 它有多種實現(xiàn)方式運行時 Java虛擬機先判斷給定參數(shù)的類型 然后決定到底執(zhí)行哪個max 方法 publicclassTest publicstaticvoidmain String args Math max 1 2 Math max 1 0F 2 F Math max 1 0 2 方法重載 24 構(gòu)造方法重載2 1 構(gòu)造方法重載是方法重載的典型示例 publicclassAccpTeacher7 privateStringname 教員姓名privateStringschool 北京中心 所在中心publicAccpTeacher7 Stringname this name name 設(shè)定教員姓名 publicAccpTeacher7 Stringname Stringschool this name name 設(shè)定教員姓名this school school 設(shè)定教員的所在中心 publicStringintroduction return 大家好 我是 school 的 name 構(gòu)造方法重載 25 構(gòu)造方法重載2 2 通過調(diào)用不同的構(gòu)造方法來表達對象的多種初始化行為例如 默認情況下 教師來自北京中心 初始化時 只需提供教員姓名有時 需要提供所在中心名稱及教員姓名 publicclassAccpTeacher7Test publicstaticvoidmain String args AccpTeacher7teacher1 newAccpTeacher7 李芳 System out println teacher1 introduction AccpTeacher7teacher2 newAccpTeacher7 張欣 天津中心 System out println teacher2 introduction 大家好 我是北京中心的李芳大家好 我是天津中心的張欣 26 小結(jié)4 編寫一個類Book3 代表教材 具有屬性 名稱 title 頁數(shù) pageNum 種類 type 具有方法 detail 用來在控制臺輸出每本教材的名稱 頁數(shù) 種類具有兩個帶參構(gòu)造方法 第一個構(gòu)造方法中 設(shè)置教材種類為 計算機 固定 其余屬性的值由參數(shù)給定 第二個構(gòu)造方法中 所有屬性的值都由參數(shù)給定編寫測試類Book3Test進行測試 分別以兩種方式完成對兩個Book3對象的初始化工作 并分別調(diào)用它們的detail方法 看看輸出是否正確 完整代碼實現(xiàn) 27 給定如下Java代碼 請指出

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論