




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第四課類的定義擴(kuò)展及繼承1 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 2 目標(biāo) 掌握面向?qū)ο缶幊痰母拍?掌握如何創(chuàng)建類和構(gòu)造對(duì)象 掌握對(duì)象的成員變量和方法 了解this關(guān)鍵字 第四課類定義擴(kuò)展及繼承 軟件開發(fā)的生命周期 一般來說,軟件開發(fā)都要經(jīng)歷下面幾個(gè)過程: 1、軟件分析:主要是了解用戶的需求 2、軟件設(shè)計(jì):確定軟件的整體架構(gòu)。把一個(gè)大的系統(tǒng)劃分 為若干小的子系統(tǒng),并設(shè)計(jì)每個(gè)子系統(tǒng)的具體結(jié)構(gòu)。 3、軟件編碼:用選定的語言來完成具體的軟件設(shè)計(jì)內(nèi)容。 4、軟件測試:測試軟件是否能完全實(shí)現(xiàn)設(shè)計(jì)的功能,并測 試軟件的運(yùn)
2、行性能。 5、軟件部署:為用戶安裝軟件系統(tǒng),幫助用戶正確的使用 軟件。 6、軟件維護(hù):修復(fù)軟件運(yùn)行期產(chǎn)生的bug,并根據(jù)用戶需 求的變化,修改軟件的相應(yīng)功能。 2007 iSoftStone Holdings Ltd. All Rights Reserved. 3 第四課類定義擴(kuò)展及繼承 優(yōu)秀軟件系統(tǒng)的特點(diǎn) 為了提高軟件開發(fā)效率,降低軟件開發(fā)成本,一個(gè)良好的軟 件系統(tǒng)應(yīng)該具有如下的特點(diǎn): 1、可重用性:減少軟件中的重復(fù)代碼,避免重復(fù)編程。 2、可擴(kuò)展性:當(dāng)軟件必須增加新的功能時(shí),能夠在現(xiàn)有的系統(tǒng) 結(jié)構(gòu)基礎(chǔ)上,方便的創(chuàng)建新的子系統(tǒng),而不用去修改現(xiàn)有軟 件的結(jié)構(gòu),不影響已有子系統(tǒng)的正常使用。 3、
3、可維護(hù)性:當(dāng)用戶需求發(fā)生變化時(shí),只需要修改局部子系統(tǒng) 的少量代碼,而不會(huì)牽一發(fā)而動(dòng)全身。 那如何才能使我們開發(fā)的軟件系統(tǒng)具有這些特點(diǎn)呢? 2007 iSoftStone Holdings Ltd. All Rights Reserved. 4 第四課類定義擴(kuò)展及繼承 開發(fā)良好的軟件系統(tǒng) 我們可以把一個(gè)大的系統(tǒng)分解為若干的子系統(tǒng),每個(gè) 子系統(tǒng)相對(duì)獨(dú)立。把這些獨(dú)立的子系統(tǒng)象搭積木一樣 靈活的組裝在一起,成為一個(gè)完整的系統(tǒng)。這樣的軟 件系統(tǒng)就會(huì)具有我們前面所說的那些優(yōu)點(diǎn) 軟件中的子系統(tǒng)同樣要具有一些特點(diǎn): 1、結(jié)構(gòu)穩(wěn)定性:子系統(tǒng)設(shè)計(jì)合理,結(jié)構(gòu)健壯,能夠適用 用戶需求的變化 。 2、可擴(kuò)展性:當(dāng)軟件必
4、須增加新的功能時(shí),可在現(xiàn)有子 系統(tǒng)的基礎(chǔ)上創(chuàng)建出新的子系統(tǒng),該子系統(tǒng)繼承了原 有子系統(tǒng)的一些特征,并且還具有一些新的特性,從 而提高軟件的可重用性和可擴(kuò)展性。 2007 iSoftStone Holdings Ltd. All Rights Reserved. 5 第四課類定義擴(kuò)展及繼承 開發(fā)良好的軟件系統(tǒng) 3、內(nèi)聚性:每個(gè)子系統(tǒng)只完成特定的功能,不同子系統(tǒng) 之間不會(huì)有功能的疊加。子系統(tǒng)的內(nèi)聚性會(huì)提高軟件 的可重用性和可維護(hù)性。 4、可組合性:各個(gè)子系統(tǒng)可以靈活的組裝在一起,形成 一個(gè)大的完整的系統(tǒng)。該特性可以提高軟件的可重用 性和可維護(hù)性,并簡化軟件的開發(fā)過程。 5、松耦合:子系統(tǒng)之間相互獨(dú)
5、立,修改其中一個(gè)子系統(tǒng) ,不會(huì)影響到其他子系統(tǒng)。當(dāng)用戶需求發(fā)生變化時(shí), 只需要修改特定子系統(tǒng)的代碼,從而提高了軟件的可 維護(hù)性。 2007 iSoftStone Holdings Ltd. All Rights Reserved. 6 第四課類定義擴(kuò)展及繼承 軟件開發(fā)方法 目前在軟件開發(fā)領(lǐng)域有兩種主流的開發(fā)方法: 1、面向過程的軟件開發(fā) 傳統(tǒng)的開發(fā)方法,早期的開發(fā)語言比如:c 、basic 、pascal都是面向過程的。 2、面向?qū)ο蟮能浖_發(fā) 為了提高軟件的可重用性、可維護(hù)性和可擴(kuò)展性,面 向?qū)ο蟮拈_發(fā)方式應(yīng)運(yùn)而生。JAVA就是純面向?qū)ο蟮?開發(fā)語言。 2007 iSoftStone Hol
6、dings Ltd. All Rights Reserved. 7 第四課類定義擴(kuò)展及繼承 面向過程的軟件開發(fā) 采用自頂向下的設(shè)計(jì)方式,在把一個(gè)大的 系統(tǒng)分解為若干子系統(tǒng)的時(shí)候,就不得不 去考慮具體的實(shí)現(xiàn)方式。因?yàn)榉纸夤δ艿?過程就是實(shí)現(xiàn)功能的過程。當(dāng)用戶需求發(fā) 生變化時(shí),就需要自頂之下的去修改,甚 至有的時(shí)候,需要把原來的設(shè)計(jì)全部推翻 重來。 2007 iSoftStone Holdings Ltd. All Rights Reserved. 8 第四課類定義擴(kuò)展及繼承 面向?qū)ο蟮能浖_發(fā) 這種開發(fā)方法把系統(tǒng)看成是對(duì)象的集合。對(duì)象就是最小的子 系統(tǒng)。它具有下列一些優(yōu)點(diǎn): 1、把軟件系統(tǒng)看成是
7、對(duì)象的集合,更接近于人的思維方式。 2、軟件需求的變動(dòng)往往是功能的變動(dòng),而功能的執(zhí)行者-對(duì)象 一般不會(huì)有大的變動(dòng),這使得按照對(duì)象設(shè)計(jì)出來的系統(tǒng)結(jié)構(gòu) 比較穩(wěn)定。 3、支持封裝、繼承、多態(tài)和抽象等特征,提高了系統(tǒng)的可維護(hù) 性、可重用性和可擴(kuò)展性。 2007 iSoftStone Holdings Ltd. All Rights Reserved. 9 第四課類定義擴(kuò)展及繼承 什么是對(duì)象 問:那什么是對(duì)象呢? 答:萬物皆對(duì)象。 現(xiàn)實(shí)世界中的任何實(shí)體和概念都可以抽象為對(duì)象。 比如說我們的學(xué)校:學(xué)生、老師、教室、機(jī)房、設(shè)備、 辦公大樓、課本等等都是對(duì)象。 在比如說銀行:賬單、出納員、支票、匯率、現(xiàn)金、驗(yàn)
8、 鈔機(jī)等也都是對(duì)象。 2007 iSoftStone Holdings Ltd. All Rights Reserved. 10 第四課類定義擴(kuò)展及繼承 對(duì)象的特征 1、每個(gè)對(duì)象都是唯一的。對(duì)象的唯一性來源于真實(shí)世界中事物的唯一性 。在JAVA中,保證對(duì)象唯一性的方法就是為這個(gè)對(duì)象在內(nèi)存中分配唯 一的地址。 2、對(duì)象都具有屬性和行為。比如人的屬性有:身高、體重、年齡、性別 等。行為有:吃飯、睡覺、唱歌、打球等 3、對(duì)象都具有狀態(tài)。(指屬性而言) 比如每個(gè)人都有共同的屬性是身高,但是每個(gè)人的這個(gè)屬性是不同的 3、對(duì)象都屬于某一個(gè)類。 比如中國和美國都屬于國家這個(gè)類別。 汽車和自行車都屬于交通工具
9、這個(gè)類別。 男人和女人都屬于人類。 問:什么是類。問:什么是類。 2007 iSoftStone Holdings Ltd. All Rights Reserved. 11 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 12 什么是類 類實(shí)際上是對(duì)某種類型的對(duì)象定義變量和方法的原型。 (類就是一組具有相同屬性和行為的對(duì)象的集合。類就是一組具有相同屬性和行為的對(duì)象的集合。) 一個(gè)對(duì)象是類的一個(gè)實(shí)例。有了類,才可以創(chuàng)建對(duì)象。類 不能是它們描述的對(duì)象本身,類是同一種對(duì)象的集合的抽 象,即,同一類對(duì)象的變量和方法的原型。 v
10、ariables methods 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 13 面向?qū)ο缶幊?class Car int color_number; int door_number; int speed; void brake() void speedUp() ; void slowDown() 計(jì)算機(jī)中 的對(duì)象的原型 現(xiàn)實(shí)生活中的 對(duì)象 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 14 面向?qū)ο蟮娜齻€(gè)特征 封裝(encapsula
11、tion) (比如說發(fā)動(dòng)機(jī)) 繼承(Inheritance) 多態(tài)(Polymorphism) 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 15 面向?qū)ο蟪绦蛟O(shè)計(jì) 從程序設(shè)計(jì)的角度看,類是面向?qū)ο蟪绦蛑凶罨镜某?序單元。類實(shí)質(zhì)上定義的是一種數(shù)據(jù)類型,這種數(shù)據(jù)類 型就是對(duì)象類型 。所以我們可以使用類名稱來聲明對(duì)象 變量。 聲明對(duì)象變量之后,還不能使用對(duì)象。必須用運(yùn)算符new 創(chuàng)建對(duì)象實(shí)體之后,才能使用對(duì)象。 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Re
12、served. 16 類的定義 修飾符 classclass 類名 繼承父類接口 成員變量; 構(gòu)造函數(shù); 成員方法; 每個(gè)源代碼文件只能有一個(gè)public類; 文件名必須與public類名相同; 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 17 創(chuàng)建對(duì)象 使用下列語法可創(chuàng)建對(duì)象: new 構(gòu)造函數(shù) 關(guān)鍵字 new 通常稱為創(chuàng)建運(yùn)算符,用于分配對(duì)象內(nèi)存,并將 該內(nèi)存初始化為缺省值。 一旦 new 完成分配和初始化內(nèi)存,它就將調(diào)用構(gòu)造函數(shù)來執(zhí) 行對(duì)象初始化。 當(dāng)創(chuàng)建一個(gè)類時(shí),只是創(chuàng)建當(dāng)創(chuàng)建一個(gè)類時(shí),只是創(chuàng)建 了一種新的
13、數(shù)據(jù)類型。對(duì)象了一種新的數(shù)據(jù)類型。對(duì)象 是類的一個(gè)實(shí)例。是類的一個(gè)實(shí)例。 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 18 newnew 1、第一步,你必須聲明該類類型的一個(gè)變量,這個(gè)變量沒有 定義一個(gè)對(duì)象。實(shí)際上,它只是一個(gè)能夠引用對(duì)象的簡單 變量。 2、第二步,該聲明要?jiǎng)?chuàng)建一個(gè)對(duì)象的實(shí)際的物理拷貝,并把 對(duì)于該對(duì)象的引用賦給該變量。這是通過使用new運(yùn)算符實(shí) 現(xiàn)的。new運(yùn)算符為對(duì)象動(dòng)態(tài)分配(即在運(yùn)行時(shí)分配)內(nèi)存 空間,并返回對(duì)它的一個(gè)引用。這個(gè)引用或多或少的是new 分配給對(duì)象的內(nèi)存地址。然后這個(gè)引用被存儲(chǔ)在
14、該變量中。 所以,在Java中,所有的類對(duì)象都是動(dòng)態(tài)分配的。 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 19 示例: class Box double _width; double _height; double _long; class BoxDemo2 public static void main(String args) Box mybox1 = new Box(); double vol; mybox1._width = 10; mybox1._height = 20; mybox1._long = 1
15、5; vol = mybox1._width * mybox1._height * mybox1._long; System.out.println(Volume is + vol); 實(shí)例: 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 20 圖解:圖解: 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 21 給對(duì)象引用變量賦值給對(duì)象引用變量賦值 例如:下面的程序段是做什么呢? Box b1 = new Box(); Box b2 = b1
16、; b1和b2將引用同樣的對(duì)象。將b1賦值給b2并沒有分配任何內(nèi)存或?qū)υ瓕?duì)象做 任何部分的拷貝。由于它們是同一個(gè)對(duì)象,因此通過變量b2對(duì)對(duì)象的改變 也將影響b1所對(duì)應(yīng)的對(duì)象 b1 = null; /b1被設(shè)置為空,但是b2仍然指向原來的對(duì)象。 第四課類定義擴(kuò)展及繼承 對(duì)象的生命周期 對(duì)象的生命開始于被創(chuàng)建的時(shí)候,也就是new的時(shí)候。 Class c = new Class(); 當(dāng)一個(gè)對(duì)象沒有任何的變量去引用它的時(shí)候,我們說這 個(gè)對(duì)象已經(jīng)是垃圾對(duì)象了。 c = null ; 2007 iSoftStone Holdings Ltd. All Rights Reserved. 22 第四課類定義
17、擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 23 構(gòu)造函數(shù) 構(gòu)造函數(shù)是類的一種特殊的方法,主要表現(xiàn): (1)構(gòu)造函數(shù)的方法名與類名相同。 (2)構(gòu)造函數(shù)沒有返回類型。 (3)構(gòu)造函數(shù)的主要作用是完成對(duì)類對(duì)象的初始化工作。 (4)構(gòu)造函數(shù)不能由編程人員顯式地直接調(diào)用。 (5)在創(chuàng)建一個(gè)類的新對(duì)象的同時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用 該類的構(gòu)造函數(shù)為新對(duì)象初始化。 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 24 構(gòu)造函數(shù)定義 class Box double wi
18、dth; double height; double depth; Box() System.out.println(Constructing Box); width = 10; height = 10; depth = 10; double volume() return width * height * depth; 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 25 默認(rèn)構(gòu)造函數(shù) 默認(rèn)構(gòu)造函數(shù)指沒有參數(shù)的構(gòu)造函數(shù) 如果編寫的類沒有構(gòu)造函數(shù),系統(tǒng)會(huì) 自動(dòng)提供一個(gè)默認(rèn)構(gòu)造函數(shù),它把所 有的屬性設(shè)為默認(rèn)值 第四課類定
19、義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 26 帶參數(shù)的構(gòu)造函數(shù) class Box double width,height,depth; / 有參數(shù)的構(gòu)造函數(shù) Box(double w,double h,double d) width = w; height = h; depth = d; 調(diào)用: Box mybox1 = new Box(10,20,15); Box mybox2 = new Box(3,6,9); 實(shí)例: 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rig
20、hts Reserved. 27 初始化塊 Java中有三種初始化屬性的方式: 聲明中賦值 在構(gòu)造函數(shù)中設(shè)置值 初始化塊 這種機(jī)制并不是必須的,而且也不常 見。 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 28 初始化塊示例 public class Example int a,b; a=11; b=22; public Example() a=10; b=20; 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 29 靜態(tài)初始化塊 stat
21、ic / 語句組 功能:完成初始化工作。 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 30 初始化器構(gòu)造函數(shù)的區(qū)別 構(gòu)造函數(shù)是對(duì)每個(gè)新創(chuàng)建的對(duì)象初始化,而靜態(tài)初始化器 是對(duì)類自身進(jìn)行初始化; 構(gòu)造函數(shù)是在用 new 運(yùn)算符產(chǎn)生新對(duì)象時(shí)由系統(tǒng)自動(dòng)執(zhí) 行,而靜態(tài)初始化器則是在它所屬的類加載入內(nèi)存時(shí)有系 統(tǒng)調(diào)用執(zhí)行。 靜態(tài)初始化器不是方法,沒有方法名,參數(shù)表。 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 31 方法方法 方法是類的主要組成部
22、分。在一個(gè)類中,程序的 作用體現(xiàn)在方法中。方法 是Java語言的基本構(gòu)件。 利用方法可以組成結(jié)構(gòu)良 好的程序。本章介紹方法 的構(gòu)成規(guī)則和設(shè)計(jì)、使用 方法的基本要點(diǎn)。 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 32 方法的聲明 一般的方法聲明可以具有如下形式: 訪問控制符修飾符 返回類型 方法名(參數(shù)表) throws 異常類名表 /方法體 如: Double salery ; Public void addSalery(double sal) / 方法執(zhí)行體 salery += sal ; 修飾符返回類型 方法名參數(shù)列表 第四課類定義擴(kuò)展及繼承2007 iSoftStone Holdings Ltd. All Rights Reserved. 33 方法的調(diào)用 方法是類的一個(gè)動(dòng)態(tài)的屬性,先創(chuàng)建類的一個(gè)實(shí)例對(duì) 象,通過對(duì)象.方法名來調(diào)用方法 如: public class Employee public void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體檢錄用合同范本
- 小班常規(guī)建立課題申報(bào)書
- 漢字課題申報(bào)書
- 和單位食堂合同范本
- 單方出資合作合同范例
- 合同范本中自動(dòng)簽字
- 叉車裝卸出租合同范例
- 勞務(wù)分包合同范本全國
- 優(yōu)化住房公積金政策 助力民生改善
- 合同范本模板采購方案
- 《污水中微塑料的測定 傅里葉變換顯微紅外光譜法》
- 貨物學(xué) 課件1.3貨物的計(jì)量
- 2025四川省資陽市人民政府政務(wù)服務(wù)中心招聘4人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 華東師大版初中科學(xué)八年級(jí)上冊(cè)知識(shí)點(diǎn)
- 【MOOC】跨文化思想交流英語-南京理工大學(xué) 中國大學(xué)慕課MOOC答案
- 部編人教版五年級(jí)下冊(cè)小學(xué)數(shù)學(xué)全冊(cè)教案
- 2024年世界職業(yè)院校技能大賽高職組“聲樂、器樂表演組”賽項(xiàng)參考試題庫(含答案)
- 2024年共青團(tuán)入團(tuán)考試題庫及答案
- 2024年共青團(tuán)入團(tuán)考試測試題庫及答案
- 2024解析:第十二章機(jī)械效率-講核心(原卷版)
- 四川省德陽市(2024年-2025年小學(xué)五年級(jí)語文)人教版小升初真題(上學(xué)期)試卷及答案
評(píng)論
0/150
提交評(píng)論