版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、面向對象主要內容:1. 方法的定義2. 類的定義3. 對象的實例化4. 構造方法5. 值傳遞6. 訪問控制修飾符7. 面向對象的特性a) 封裝b) 繼承c) 多態(tài)8. 關鍵字9. 抽象類10. 接口11. 作業(yè)一、 方法的定義(函數(shù))a) 方法的基本格式 修飾符 返回值類型 方法名(參數(shù)1 ,參數(shù)2 .)注: 1. 中的可以省略 2.返回值類型:void 無返回值類型,還有基本數(shù)據(jù)類,引用數(shù)據(jù)類型 3.參數(shù)可以有多個,通過傳遞賦值,沒有實際的值,叫做形參4. () 是方法的象征5. 是方法體,必須寫,不能省略b) 無參數(shù)的無返回值的方法c) 有參數(shù)的無返回值的方法d) 無參數(shù)的有返回值的方法e
2、) 有參數(shù)有返回值的方法二、 類的定義世界萬物是有什么組成的,在java的世界中,一切皆是對象。那我們怎么來定義類呢?那我們身邊有哪些對象呢?比如:人具有特征:身高,體重,姓名,性別等等具有行為:吃飯,穿衣,睡覺,運動,思考,等等比如:汽車具有特征:顏色,品牌,性能等等具有行為:行駛,倒車,鳴笛等等比如:燈泡具有特征:價格,大小等等具有行為:開,關,亮,暗等等類的屬性:對象所具有的特征類的方法:對象所執(zhí)行的操作類可以看成一類對象的模板對象可以看成是類的一個實例(實體)舉例:自己定義人(People)的類a) 成員變量(屬性,字段(field),全局變量)1. 在方法的外部,類的內部聲明2. 成
3、員變量可以不賦初始值使用b) 局部變量1. 在方法的內部聲明2. 必須賦初始值之后才能使用注意:簡單來說,在哪個括號中聲明的,可以在哪個括號中使用練習:編寫學生(Student)類 ,如下圖(可以自由發(fā)揮,作為個人簡歷)三、 對象的實例化a) 格式: 類型 對象名 = new 類型();b) 作用: 在堆內存中創(chuàng)建一個類的對象c) 注意: 1. new 是關鍵字2. 自己聲明的類也是一個類型3. 對象名必須是標識符4. 類型必須是引用數(shù)據(jù)類型,自己聲明的所有的類都是引用數(shù)據(jù)類型四、 訪問成員變量和成員方法用對象名.訪問成員變量或方法例如: Student s = new Student();s
4、.name = “張三”;/修改學生的屬性那么的值System.out.println(“姓名:”+s);/輸出學生的姓名s.print();/調用學生類的print的方法,打印學生的所有信息Student s1 = new Student();System.out.println();注: 1. s1中name的值是多少呢2. 每一個對象中的成員變量都有自己的存儲空間3. 每一個對象都只能改變自己空間中的屬性五、 類與對象的關系 類與對象的關系 類: Student 對象 : s1 (學生1) s2 (學生2) 類: 類可以看成是一類對象的模板 類是抽象的概念,只是模板 類只是
5、對具體實物的抽象 對象: 對象是類的一個具體實例 對象是實體 對象是實際存在我們可觀世界的實體六、 構造方法a) 定義1. 方法與類同名2. 沒有返回值(void是無返回值類型)3. 可以用訪問控制修飾符修飾b) 作用1. 用new + 構造方法創(chuàng)建一個對象,并執(zhí)行構造方法中的代碼2. 可以通過構造方法給成員變量賦初始值c) 注意1. 可以理解為構造方法是由返回值得,調用構造方法返回一個當前類的對象2. 也可以叫構造函數(shù)3. new + 帶參數(shù)的構造方法也可以創(chuàng)建一個對象4. 也可以直接寫new +構造方法執(zhí)行代碼七、 值傳遞a) 基本數(shù)據(jù)類型傳遞的是值,不能改變原來方法中局部變量的值b) 引
6、用數(shù)據(jù)類型傳遞的是對象,可以改變對象中的值c) 不能改變對象的引用八、 訪問控制修飾符關鍵字本類子類同包所有的類privatedefaultprotectedpublic注:1. private , protected 不能修飾類2. 都可以修飾構造方法,限制構造方法的使用3. default 不能寫出來 九、 面向對象的特性a) 什么是面向對象 面向對象是java的基本思想 面向對象和面向過程都是編程語言的思想 面向過程強調的是對象的行為 面向對象是將功能封裝起來,強調的是具有功能的對象 面向對象的三大特性:封裝,繼承和多態(tài)b) 面向對象和面向過程的區(qū)別 面向過程就是分析出解決問題所需要的步
7、驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調用就可以了。 面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。c) 封裝 封裝:將類的某些信息隱藏在類內部,不允許外部程序直接訪問,而是通過該類提供的方法來實現(xiàn)對隱藏信息的操作和訪問 封裝的思想: 1. 隱藏類的實現(xiàn)細節(jié)2. 迫使用戶使用接口去訪問3. 使代碼更好的維護 如何封裝1. 修改屬性的可見性,設為private2. 創(chuàng)建getter和setter方法,便于讀寫屬性3. 在方法中加入對屬性的控制 封裝的好處隱藏類的實現(xiàn)細節(jié)只能通過規(guī)定方法訪問數(shù)據(jù)方
8、便加入控制語句方便修改實現(xiàn)d) 繼承 什么是繼承 是指自然人死亡后,由法律規(guī)定的人或遺囑指定的人依法取得死者遺留的個人合法財產的法律制度。(這是法律中的繼承) 是java中一個類(子類)可以繼承另外一個類(父類)中的所有的成員變量和方法 繼承的思想減少代碼的冗(rong)余,增加代碼的重用 怎么繼承動物(Animal)鳥 (Bird )魚(fish)家禽(poultry)麻雀Sparrow黃鸝Oriole金魚Goldfish帶魚Hairtail雞Chicken鴨Dock所有的鳥,魚,家禽都屬于是動物,應該擁有動物所有的屬性和方法,所以應該繼承動物所有的特征和行為 ,金魚帶魚都屬于是魚,所以應該
9、繼承魚類所有的特征和行為。魚 繼承 動物 Fish extends Animal鳥 繼承 動物 Bird extends Animal麻雀 繼承 鳥 Sparrow extends Bird帶魚 繼承 魚 Hairtail extends Fish動物是魚的父類(基類、超類)鳥是動物的子類(派生類)那帶魚能不能既繼承魚也繼承動物呢?不能,因為java只支持單繼承 繼承的好處n 繼承是傳遞的,在一些比較一般的類的基礎上構造、建立和擴充新類的最有效的方法n 簡化了人對事物的認識和描述,清晰體現(xiàn)相關類之間的層次結構關系n 繼承提供了軟件的重用功能,減少代碼和數(shù)據(jù)的冗余,大大增加了程序的重用性n 繼承
10、通過增強一致性,減少了模塊之間的接口和界面,大大增加了程序的易維護性n 多重繼承機制,一個類可以是多個類的父類,也可以從多個類中繼承屬性和方法,出于安全和可靠性的考慮,僅支持單重繼承,通過接口機制來實現(xiàn)多重繼承 繼承的例子上述例子表明:子類繼承父類,子類可用使用父類中的成員,就像是子類自己的一樣 構造方法的特殊性n 構造方法不能被繼承n 在調用子類構造方法的時候首先調用父類的構造再執(zhí)行本類的構造方法 重載n 重載的定義:l 同一個類中l(wèi) 方法名相同l 參數(shù)不同l 返回值可以不一樣n 重載的例子: 重寫n 重寫的定義:l 子類中l(wèi) 方法名相同l 參數(shù)相同l 返回值相同l 不能有比父類有更嚴格的訪
11、問權限l 不能拋出比父類更多的異常n 重寫的例子e) 多態(tài) 什么是多態(tài)n 多態(tài)顧名思義就是多種形態(tài)的意思n 一類的事物存在多種形態(tài),不同的對象收到同一個消息可以產生完全不同的效果。 多態(tài)的前提n 繼承n 重寫n 向上轉型 多態(tài)的體現(xiàn)n 狗 g = new 狗();n 例如:動物 dw = new 狗();n 父類的引用指向子類的對象n 用戶發(fā)送了一個通用的對象,實現(xiàn)的細節(jié)有接受對象自行決定 對象的引用n 父類的引用指向子類對象,不能訪問子類中特有的方法n 父類的引用只能訪問父類的成員,但執(zhí)行的是子類重寫父類的成員 多態(tài)的作用n 提高了程序的擴展性和后期的可維護性n 增強了軟件的透明度,可理解性
12、,可擴展性n 增強了靈活性和重用性n 多態(tài)是面向對象的重要思想,面向對象沒有多態(tài)也就失去了色彩 注意n 存在繼承或者實現(xiàn)n 存在重寫方法 強制轉換n 動物 dw = new 狗();可以將dw表示的對象轉化為”狗”對象n 可以想象為是一個貼著動物標簽的盒子中放一個狗對象n 不能任意轉換類型,必須轉換為對應的類型n 用關鍵字 instanceof(實例類型判斷運算符) 判斷是否是某個類型 實驗1n 動物園有這些動物:狗、兔子等,飼養(yǎng)員每天都會給這些動物喂食,狗喜歡吃骨頭、而兔子喜歡吃胡蘿卜,通過Java程序模擬飼養(yǎng)員喂食 實驗21. 編寫一個類Shape類,具有一個draw方法,派生出三個子類
13、Circle(圓)Triangle(三角形), Rectangle(矩形),子類中重寫了父類的方法。2. 編寫一個測試類Test, 具有一個方法test ,該方法的參數(shù)類型為 Shape , 然后在此方法體中調用Shape的draw方法.3. 在TestShape中添加main方法,調用Test 的test方法,隨意生成一個Shape子類的實例 ,并將該實例當做參數(shù)傳入。十、 關鍵字a) This1. this可以看成是一個變量,它的值是當前對象的引用2. 在類的成員方法的使用this關鍵字代表使用該方法的對象的引用3. 可以使用this關鍵字處理成員變量和參數(shù)重名的問題4. 不能用在stat
14、ic代碼塊中5. 可以在構造方法中用this(參數(shù)列表) 訪問本類中的其他構造方法,必須放在第一行b) Super1. super可以看成是一個變量,它的值代表的是當前對象父類的引用2. 可以在類的成員方法中表示父類對象3. 一般不在static代碼塊中應用4. 在構造方法中第一句默認是的super() ,必須放在第一行c) Static1. 用static修飾的方法叫做靜態(tài)的方法,用static的修飾的變量是靜態(tài)的變量,在系統(tǒng)加載類的時候,首先加載靜態(tài)的變量和方法2. 靜態(tài)的方法不能直接調用非靜態(tài)的成員3. 非靜態(tài)的可以直接訪問靜態(tài)的4. 靜態(tài)的方法不需要所屬類的任何實例引用,用類名.成員可
15、以直接引用5. 非靜態(tài)的僅限于實例引用d) Package1. Java的包機制2. 用點來表示包的層次結構3. 必須放到java文件的第一行(在package關鍵字上面只能有注釋和空白)e) Import1. 導包關鍵字2. 引用不同包中的類必須導包3. 程序在執(zhí)行的時候會自動加載java.lang包中的所有類,所以在用到lang包中的類的時候不用導包f) Final1. 用final修飾的變量不能被改變2. 用final修飾的方法不能被重寫3. 用final修飾的類不能被繼承十一、 抽象類 抽象類的特點1. 抽象類用abstract修飾2. 抽象類不能直接實例化3. 抽象類中可以用main
16、方法4. 用abstract修飾的方法是抽象的方法5. 抽象的方法只有聲明,沒有實現(xiàn)6. 有抽象方法的類必須是抽象類7. 抽象類一般作為其他類的父類8. 抽象類作為其他類的父類,抽象的方法必須重寫9. 抽象類可以沒有抽象的方法 舉例a) 由于Shape類計算周長和面積的方法無法確定,那么就可以將這樣的方法聲明為抽象的,以便在具體的子類中進行實現(xiàn)。十二、 接口 接口的原理在軟件工程中,經常將一個大的項目分由不同的開發(fā)小組共同開發(fā),各個小組的開發(fā)工作是并行的。在很多時候,對于不同小組的程序員來說,清楚地說明各自的軟件如何相互作用,并就此達成統(tǒng)一“約定”是很重要的。這種情況下,每一小組都可以在對其他
17、小組怎么編寫代碼一無所知的情況下,就能編寫自己的代碼,并且各自小組編寫的代碼能很好的協(xié)同工作。接口就是這樣的“約定”。 接口的特點1. 接口可以看做是一個特殊的抽象類2. 接口不能直接實例化3. 接口中只有常量和抽象的方法4. 接口中沒有main方法5. 接口可以被類實現(xiàn) ,實現(xiàn)的關鍵字是implements6. 類實現(xiàn)接口就必須實現(xiàn)類的方法7. 接口之間可以多繼承8. 接口與類之間也存在多態(tài)性(也可以理解接口是類的父類)十三、 作業(yè)1. 某公司的雇員分為以下若干類:a) Employee:這是所有員工總的父類,屬性:員工的姓名,員工的生日月份。方法:getSalary(int month) 根據(jù)參數(shù)月份來確定工資,如果該月員工過生日,則公司會額外獎勵100元。b) SalariedEmployee:Employee的子類,拿固定工資的員工。屬性:月薪c) HourlyEmployee:Employe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026四川安和精密電子電器股份有限公司招聘項目經理等崗位3人備考考試試題及答案解析
- 2026廣西南寧市良慶區(qū)統(tǒng)計局招聘1人考試參考題庫及答案解析
- 2026年贛州市第十中學春季學期頂崗教師招聘備考考試題庫及答案解析
- 2026春季夢想靠岸招商銀行中山分行校園招聘備考考試試題及答案解析
- 野營集市活動方案策劃(3篇)
- 2026甘肅蘭州市學府致遠學校招聘教師12人筆試模擬試題及答案解析
- 2026河南鄭州華卓醫(yī)院(滎陽二院)招聘42人備考考試題庫及答案解析
- 2026廣西玉林市事業(yè)單位招聘2182人備考考試題庫及答案解析
- 2026年上半年黑龍江事業(yè)單位聯(lián)考七臺河市招聘132人備考考試試題及答案解析
- 莆田市城廂區(qū)殘聯(lián)公開招聘編外工作人員備考考試題庫及答案解析
- 2026年水下機器人勘探報告及未來五至十年深海資源報告
- 鋼鐵制造的工藝流程(內部資料)課件
- DB31-T 1448-2023 監(jiān)獄場所消防安全管理規(guī)范
- 公司干部調研方案
- 無糾紛自愿離婚協(xié)議書
- 四川省高等教育自學考試畢業(yè)生登記表【模板】
- 專題五 以新發(fā)展理念引領高質量發(fā)展
- GB/T 22417-2008叉車貨叉叉套和伸縮式貨叉技術性能和強度要求
- GB/T 20145-2006燈和燈系統(tǒng)的光生物安全性
- GB/T 1.1-2009標準化工作導則 第1部分:標準的結構和編寫
- 長興中學提前招生試卷
評論
0/150
提交評論