面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)ppt課件_第1頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)ppt課件_第2頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)ppt課件_第3頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)ppt課件_第4頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第3章章 面向?qū)ο蟪绦蛟O(shè)計(jì)根底面向?qū)ο蟪绦蛟O(shè)計(jì)根底本章主要內(nèi)容本章主要內(nèi)容 3.1面向?qū)ο蟮母靖拍蠲嫦驅(qū)ο蟮母靖拍?3.2類與對(duì)象類與對(duì)象 3.2.1 定義類定義類 3.2.2 成員方法成員方法 3.3 對(duì)象對(duì)象 3.4 面向?qū)ο筇匦悦嫦驅(qū)ο筇匦?3.4.1 封裝性封裝性3.4.2承繼性承繼性3.4.3多態(tài)性多態(tài)性3.4.4 其它修飾符的用法其它修飾符的用法3.5接口和包接口和包3.5.1接口接口3.5.2包包3.5.3 緊縮文件緊縮文件.jar復(fù)習(xí)情況檢查復(fù)習(xí)情況檢查分析【例子分析【例子2-16】的執(zhí)行過(guò)程】的執(zhí)行過(guò)程分析【習(xí)題分析【習(xí)題15】的執(zhí)行過(guò)程】的執(zhí)行過(guò)程3.1面向?qū)ο蟮母?/p>

2、概念面向?qū)ο蟮母靖拍?1 1、 對(duì)象的根本概念對(duì)象的根本概念 對(duì)象是系統(tǒng)中用來(lái)描畫(huà)客觀事物的一個(gè)實(shí)體,對(duì)象是系統(tǒng)中用來(lái)描畫(huà)客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)根本單位。對(duì)象是問(wèn)題域它是構(gòu)成系統(tǒng)的一個(gè)根本單位。對(duì)象是問(wèn)題域或?qū)崿F(xiàn)域中某些事物的一個(gè)籠統(tǒng),反映該事物或?qū)崿F(xiàn)域中某些事物的一個(gè)籠統(tǒng),反映該事物在系統(tǒng)中需求保管的信息和發(fā)揚(yáng)的作用,是一在系統(tǒng)中需求保管的信息和發(fā)揚(yáng)的作用,是一組屬性和有權(quán)對(duì)這些屬性進(jìn)展操作的一組效力組屬性和有權(quán)對(duì)這些屬性進(jìn)展操作的一組效力的封裝體。的封裝體。 從這個(gè)角度看,客觀世界是由對(duì)從這個(gè)角度看,客觀世界是由對(duì)象和對(duì)象之間的聯(lián)絡(luò)組成的。象和對(duì)象之間的聯(lián)絡(luò)組成的?,F(xiàn)實(shí)世

3、界中的對(duì)象有兩個(gè)共同現(xiàn)實(shí)世界中的對(duì)象有兩個(gè)共同特征:形狀和行為。特征:形狀和行為。 圖3.2 軟件對(duì)象的變量和方法 72 2、 類的根本概念類的根本概念 類是具有共同屬性和行為的對(duì)象的籠統(tǒng)。 類可以定義為數(shù)據(jù)和方法的集合。 對(duì)象具有特殊屬性和行為方式的實(shí)體。類對(duì)象籠統(tǒng)實(shí)例化封裝的實(shí)體=數(shù)據(jù)+方法操作或行為屬性或形狀方法數(shù)據(jù)或變量一個(gè)類的例子一個(gè)類的例子 類用類用classclass作為它的關(guān)鍵字,例如我們要作為它的關(guān)鍵字,例如我們要?jiǎng)?chuàng)建一個(gè)汽車類,那么可表示為:創(chuàng)建一個(gè)汽車類,那么可表示為:用類創(chuàng)建對(duì)象用類創(chuàng)建對(duì)象實(shí)例化實(shí)例化 當(dāng)我們要經(jīng)過(guò)汽車類來(lái)創(chuàng)建一個(gè)轎車對(duì)象,并當(dāng)我們要經(jīng)過(guò)汽車類來(lái)創(chuàng)建一

4、個(gè)轎車對(duì)象,并運(yùn)用它的剎車行為方法時(shí),那么要用下面的格運(yùn)用它的剎車行為方法時(shí),那么要用下面的格式進(jìn)展實(shí)例化:式進(jìn)展實(shí)例化: / /實(shí)例化汽車對(duì)象實(shí)例化汽車對(duì)象 汽車轎車汽車轎車= new = new 汽車汽車( ) ( ) ; / /援用汽車對(duì)象的剎車方法援用汽車對(duì)象的剎車方法 轎車轎車. .剎車剎車( ) ( ) ;3.23.2類與對(duì)象類與對(duì)象類和對(duì)象是類和對(duì)象是JavaJava的中心和本質(zhì)。它的中心和本質(zhì)。它們是們是JavaJava言語(yǔ)的根底,編寫(xiě)一個(gè)言語(yǔ)的根底,編寫(xiě)一個(gè)JavaJava程序,在某種程度上來(lái)說(shuō)就是程序,在某種程度上來(lái)說(shuō)就是定義類和創(chuàng)建對(duì)象。定義類和建立定義類和創(chuàng)建對(duì)象。定義

5、類和建立對(duì)象是對(duì)象是JavaJava編程的主要義務(wù)。編程的主要義務(wù)。 3.2.1 3.2.1 定義類定義類 1 1、 類的普通方式類的普通方式 類由類聲明和類體組成,而類體又由成類由類聲明和類體組成,而類體又由成員變量和成員方法組成如圖員變量和成員方法組成如圖3.33.3所示:所示: 一個(gè)詳細(xì)的類一個(gè)詳細(xì)的類 2 2、類聲明、類聲明 類聲明由四部分組成:類修飾符、類關(guān)類聲明由四部分組成:類修飾符、類關(guān)鍵字鍵字classclass、聲明父類、實(shí)現(xiàn)接口,其普、聲明父類、實(shí)現(xiàn)接口,其普通方式如下:通方式如下: publicabstract|final class publicabstract|fin

6、al class 類名類名 extends extends 父類名父類名 implements implements 接口列表接口列表 各組成部分的詳細(xì)闡明各組成部分的詳細(xì)闡明 1 1 類修飾符類修飾符 publicpublic:這個(gè):這個(gè)publicpublic關(guān)鍵字聲明了類可關(guān)鍵字聲明了類可以在其他類中運(yùn)用。缺省時(shí),該類只能被同以在其他類中運(yùn)用。缺省時(shí),該類只能被同一個(gè)包中的其他類運(yùn)用。一個(gè)包中的其他類運(yùn)用。 abstractabstract:聲明這個(gè)類為籠統(tǒng)類,即這:聲明這個(gè)類為籠統(tǒng)類,即這個(gè)類不能被實(shí)例化。個(gè)類不能被實(shí)例化。 finalfinal:聲明該類不能被承繼,即不能有:聲明該類

7、不能被承繼,即不能有子類。也就是說(shuō),不能用它經(jīng)過(guò)擴(kuò)展的方法子類。也就是說(shuō),不能用它經(jīng)過(guò)擴(kuò)展的方法來(lái)創(chuàng)建新類。來(lái)創(chuàng)建新類。 2 2 類的關(guān)鍵字類的關(guān)鍵字classclass 在類聲明中,在類聲明中,classclass是聲明類的關(guān)鍵是聲明類的關(guān)鍵字,表示類聲明的開(kāi)場(chǎng),類聲明后面跟著字,表示類聲明的開(kāi)場(chǎng),類聲明后面跟著類名,按習(xí)慣類名要用大寫(xiě)字母開(kāi)頭,并類名,按習(xí)慣類名要用大寫(xiě)字母開(kāi)頭,并且類名不能用阿拉伯?dāng)?shù)字開(kāi)頭。給類名命且類名不能用阿拉伯?dāng)?shù)字開(kāi)頭。給類名命名時(shí),最好取一個(gè)容易識(shí)別且有意義的名名時(shí),最好取一個(gè)容易識(shí)別且有意義的名字,防止字,防止A A、B B、C C之類的類名。之類的類名。 3

8、3 聲明父類聲明父類extendsextends為聲明該類的父類,這闡明該類為聲明該類的父類,這闡明該類是其父類的子類。一個(gè)子類可以從它的父是其父類的子類。一個(gè)子類可以從它的父類承繼變量和方法。類承繼變量和方法。extendsextends只能實(shí)現(xiàn)單承只能實(shí)現(xiàn)單承繼。繼。創(chuàng)建子類格式:創(chuàng)建子類格式:class subclass extends class subclass extends 父類名父類名 17類的承繼類的承繼 被承繼的類稱為父類被承繼的類稱為父類 承繼父類的類稱為子類承繼父類的類稱為子類 執(zhí)行承繼時(shí),子類將獲得父類的屬性,并具執(zhí)行承繼時(shí),子類將獲得父類的屬性,并具有本身特有的屬性

9、。有本身特有的屬性。 Emoloyee類: name sexWorker類: category dressAllowanceOfficer類: empClass vehicle工人類,承繼了父類的姓名和性別屬性外還包含類別和能否有服裝津貼屬性主任類,還包含級(jí)別和能否配備交通工具屬性職員類,具有姓名和性別兩個(gè)屬性 (4)(4)實(shí)現(xiàn)接口實(shí)現(xiàn)接口 在類聲明中運(yùn)用關(guān)鍵字在類聲明中運(yùn)用關(guān)鍵字implementsimplements實(shí)現(xiàn)接口實(shí)現(xiàn)接口, ,當(dāng)要實(shí)現(xiàn)有多個(gè)接口時(shí),各接口名以逗號(hào)分當(dāng)要實(shí)現(xiàn)有多個(gè)接口時(shí),各接口名以逗號(hào)分隔,其方式為:隔,其方式為: i m p l e m e n t s i m

10、p l e m e n t s 接 口接 口 1 1 , 接 口, 接 口2 2,, 接口是一種特殊的籠統(tǒng)類,這種籠統(tǒng)類中只接口是一種特殊的籠統(tǒng)類,這種籠統(tǒng)類中只包含常量和方法的定義,而沒(méi)有變量和方法包含常量和方法的定義,而沒(méi)有變量和方法的實(shí)現(xiàn)。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,以某種的實(shí)現(xiàn)。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,以某種程度實(shí)現(xiàn)程度實(shí)現(xiàn)“多承繼。多承繼。 3 3、 成員變量和部分變量成員變量和部分變量 成員變量在類體中定義,在整成員變量在類體中定義,在整個(gè)類中都有效;個(gè)類中都有效;部分變量在方法中定義,只在部分變量在方法中定義,只在本方法中有效。本方法中有效。 變量變量1 1成員變量成員變量 最簡(jiǎn)單的

11、成員變量聲明的方式為:最簡(jiǎn)單的成員變量聲明的方式為:類型成員變量名;類型成員變量名; 2 2部分變量部分變量在方法中聲明的變量以及方法中的參數(shù)稱為部在方法中聲明的變量以及方法中的參數(shù)稱為部分變量。分變量。 3 3假設(shè)部分變量名與成員變量名一樣,那假設(shè)部分變量名與成員變量名一樣,那么成員變量被屏蔽。么成員變量被屏蔽。 成員變量與部分變量成員變量與部分變量class Data class Data int x=12,y=5; int x=12,y=5;public void sum() public void sum() int s; int s; s=x+y; s=x+y; x x、y y是成員

12、變量,是成員變量,類中一切方法都類中一切方法都可以運(yùn)用它們可以運(yùn)用它們s s是部分變量。是部分變量。僅限于在僅限于在sum()sum()方法內(nèi)部運(yùn)用。方法內(nèi)部運(yùn)用。假設(shè)部分變量名與成員變量名假設(shè)部分變量名與成員變量名一樣,那么成員變量被屏蔽。一樣,那么成員變量被屏蔽。 class Dataclass Data int x=12,y=5; int x=12,y=5; public void sum() public void sum() int x=3; / int x=3; /部分變量部分變量x x屏蔽了成員變量屏蔽了成員變量 int s; int s; s=x+y; s=x+y; 3.2.2

13、 3.2.2 成員方法成員方法 在在JavaJava中,必需經(jīng)過(guò)方法才干完成中,必需經(jīng)過(guò)方法才干完成對(duì)類和對(duì)象的屬性操作。成員方法只能對(duì)類和對(duì)象的屬性操作。成員方法只能在類的內(nèi)部聲明并加以實(shí)現(xiàn)。普通在類在類的內(nèi)部聲明并加以實(shí)現(xiàn)。普通在類體中聲明成員變量之后再聲明方法。體中聲明成員變量之后再聲明方法。 1、方法聲明、方法聲明 前往類型方法名方式參數(shù)前往類型方法名方式參數(shù)方法體內(nèi)容方法體內(nèi)容 1 1 方法名方法名方法聲明包括方法名、前往類型和方法聲明包括方法名、前往類型和參數(shù)。參數(shù)。 2 2 方法體方法體 方法體是一對(duì)大括號(hào)方法體是一對(duì)大括號(hào)“之之間的內(nèi)容。間的內(nèi)容。【例【例3-1】 教材教材P5

14、9圖3.7 方法聲明與調(diào)用的運(yùn)轉(zhuǎn)結(jié)果 方法重載方法重載 方法重載是指多個(gè)方法享有一樣的名字,方法重載是指多個(gè)方法享有一樣的名字,但是這些方法的參數(shù)必需不同,或者是但是這些方法的參數(shù)必需不同,或者是參數(shù)的個(gè)數(shù)不同,或者是參數(shù)類型不同。參數(shù)的個(gè)數(shù)不同,或者是參數(shù)類型不同。前往類型不能用來(lái)區(qū)分重載的方法。前往類型不能用來(lái)區(qū)分重載的方法。 【例【例3-23-2】教材】教材P60P60圖圖3.83.8重載與調(diào)用關(guān)系重載與調(diào)用關(guān)系 【構(gòu)造方法】【構(gòu)造方法】 構(gòu)造方法是一個(gè)特殊的方法,主要構(gòu)造方法是一個(gè)特殊的方法,主要用于初始化新創(chuàng)建的對(duì)象。構(gòu)造方法的用于初始化新創(chuàng)建的對(duì)象。構(gòu)造方法的方法名要求與類名同名,

15、而且無(wú)前往值方法名要求與類名同名,而且無(wú)前往值但不能加但不能加void修飾符。而且,構(gòu)造修飾符。而且,構(gòu)造方法只能經(jīng)過(guò)方法只能經(jīng)過(guò)new運(yùn)算符調(diào)用,用戶不運(yùn)算符調(diào)用,用戶不能直接調(diào)用。例子能直接調(diào)用。例子3-3(p61)運(yùn)用缺省構(gòu)造方法:例子運(yùn)用缺省構(gòu)造方法:例子3-4(p62)3.3 對(duì)象對(duì)象 類是一個(gè)籠統(tǒng)的概念,而對(duì)象是類的類是一個(gè)籠統(tǒng)的概念,而對(duì)象是類的詳細(xì)化。類經(jīng)過(guò)實(shí)例化生成對(duì)象。詳細(xì)化。類經(jīng)過(guò)實(shí)例化生成對(duì)象。 一個(gè)對(duì)象的生命周期包括三個(gè)階段:一個(gè)對(duì)象的生命周期包括三個(gè)階段: 創(chuàng)建、運(yùn)用和釋放。創(chuàng)建、運(yùn)用和釋放。1 1、對(duì)象的創(chuàng)建、對(duì)象的創(chuàng)建 創(chuàng)建對(duì)象的普通格式為:創(chuàng)建對(duì)象的普通格式為

16、: 類名類名 對(duì)象名對(duì)象名 = new = new 類名類名(參數(shù)列表參數(shù)列表);); (1) (1) 對(duì)象聲明:對(duì)象聲明: 類名類名 對(duì)象名;對(duì)象名; (2) (2) 實(shí)例化:實(shí)例化: 對(duì)象名對(duì)象名 = new = new 構(gòu)造方法構(gòu)造方法( )( ); 2 2、 對(duì)象的運(yùn)用對(duì)象的運(yùn)用 類是不能直接運(yùn)用的,我們只能類是不能直接運(yùn)用的,我們只能類實(shí)例化后的對(duì)象。而對(duì)象的運(yùn)用類實(shí)例化后的對(duì)象。而對(duì)象的運(yùn)用是經(jīng)過(guò)訪問(wèn)對(duì)象變量或調(diào)用對(duì)象方是經(jīng)過(guò)訪問(wèn)對(duì)象變量或調(diào)用對(duì)象方法。法。 經(jīng)過(guò)運(yùn)算符經(jīng)過(guò)運(yùn)算符“. .可以實(shí)現(xiàn)對(duì)對(duì)可以實(shí)現(xiàn)對(duì)對(duì)象的變量訪問(wèn)和方法的調(diào)用。象的變量訪問(wèn)和方法的調(diào)用。 1 1 訪問(wèn)對(duì)象的

17、變量訪問(wèn)對(duì)象的變量 訪問(wèn)格式:訪問(wèn)格式: 對(duì)象名對(duì)象名. .成員變量;成員變量; 例如,設(shè)有一個(gè)例如,設(shè)有一個(gè)A A類其構(gòu)造如下:類其構(gòu)造如下: class A class A int x; int x; 對(duì)變量對(duì)變量x x賦值,先創(chuàng)建并實(shí)例化類賦值,先創(chuàng)建并實(shí)例化類A A的對(duì)象的對(duì)象a a,然,然后再經(jīng)過(guò)對(duì)象給變量后再經(jīng)過(guò)對(duì)象給變量x x: A a = new A(); A a = new A(); a.x=5; a.x=5; 2 2 調(diào)用對(duì)象的方法調(diào)用對(duì)象的方法 調(diào)用格式:對(duì)象名調(diào)用格式:對(duì)象名. .方法名方法名(參數(shù)列表參數(shù)列表); ); 【例【例3-53-5】用帶參數(shù)的成員方法計(jì)算長(zhǎng)方

18、】用帶參數(shù)的成員方法計(jì)算長(zhǎng)方體的體積。體的體積。【例【例3-63-6】用對(duì)象作為方法的參數(shù)計(jì)算圓柱】用對(duì)象作為方法的參數(shù)計(jì)算圓柱體體積。體體積。3 3 釋放對(duì)象釋放對(duì)象 1、java的渣滓搜集器自動(dòng)把沒(méi)有運(yùn)用的對(duì)的渣滓搜集器自動(dòng)把沒(méi)有運(yùn)用的對(duì) 象作為渣滓手機(jī)并釋放,但優(yōu)先級(jí)比較象作為渣滓手機(jī)并釋放,但優(yōu)先級(jí)比較低;低;2、可運(yùn)用系統(tǒng)的、可運(yùn)用系統(tǒng)的System.gc();3、可運(yùn)用、可運(yùn)用finalize()方法去除對(duì)象方法去除對(duì)象this和和super關(guān)鍵字關(guān)鍵字1.this1.this的運(yùn)用的運(yùn)用1 1訪問(wèn)當(dāng)前對(duì)象的數(shù)據(jù)成員訪問(wèn)當(dāng)前對(duì)象的數(shù)據(jù)成員2 2訪問(wèn)當(dāng)前對(duì)象的成員變量訪問(wèn)當(dāng)前對(duì)象的成

19、員變量3 3重載時(shí)用來(lái)援用同類的其他構(gòu)造方法重載時(shí)用來(lái)援用同類的其他構(gòu)造方法2.super2.super的運(yùn)用的運(yùn)用1 1訪問(wèn)直接基類中被隱藏的數(shù)據(jù)成員訪問(wèn)直接基類中被隱藏的數(shù)據(jù)成員2 2調(diào)用直接基類中被重寫(xiě)的成員方法調(diào)用直接基類中被重寫(xiě)的成員方法3 3調(diào)用直接基類的構(gòu)造方法調(diào)用直接基類的構(gòu)造方法第第3章章 面向?qū)ο蟪绦蛟O(shè)計(jì)根底面向?qū)ο蟪绦蛟O(shè)計(jì)根底 例子【例子【3-2】 例子【例子【 IntSum 】方法參數(shù)接納】方法參數(shù)接納3.4 3.4 面向?qū)ο筇匦悦嫦驅(qū)ο筇匦?javajava言語(yǔ)中有三個(gè)典型的面向?qū)ο蟮奶匮哉Z(yǔ)中有三個(gè)典型的面向?qū)ο蟮奶匦裕悍庋b性、承繼性和多態(tài)性性:封裝性、承繼性和多態(tài)性

20、 。面向?qū)ο蟮母咎卣鳎悍庋b定義面向?qū)ο蟮母咎卣鳎悍庋b定義電視的電視的內(nèi)部構(gòu)造內(nèi)部構(gòu)造開(kāi)電視開(kāi)電視關(guān)電視關(guān)電視選擇頻道選擇頻道調(diào)理聲音,顏色調(diào)理聲音,顏色對(duì)象接口對(duì)象接口面向?qū)ο蟮母咎卣鳎悍庋b舉例面向?qū)ο蟮母咎卣鳎悍庋b舉例“學(xué)生對(duì)象的內(nèi)部數(shù)據(jù):學(xué)生對(duì)象的內(nèi)部數(shù)據(jù):個(gè)人根本信息年齡、身高、家庭信息個(gè)人根本信息年齡、身高、家庭信息在校情況在校情況(專業(yè),班級(jí),宿舍,任職等專業(yè),班級(jí),宿舍,任職等)選修課表選修課表成果清單考試,課程設(shè)計(jì),畢業(yè)設(shè)計(jì)成果成果清單考試,課程設(shè)計(jì),畢業(yè)設(shè)計(jì)成果入學(xué)入學(xué)/注冊(cè)注冊(cè)修課修課/考試考試查詢成果查詢成果畢業(yè)爭(zhēng)辯畢業(yè)爭(zhēng)辯只能經(jīng)過(guò)接口只能經(jīng)過(guò)接口來(lái)操作對(duì)象,來(lái)操作

21、對(duì)象,不能隨意修正不能隨意修正內(nèi)部數(shù)據(jù)內(nèi)部數(shù)據(jù)面向?qū)ο蟮母咎卣鳎撼欣^面向?qū)ο蟮母咎卣鳎撼欣^家電類父類家電類父類數(shù)據(jù):功率數(shù)據(jù):功率 品牌品牌 型號(hào)型號(hào)方法:?jiǎn)?dòng),停頓方法:?jiǎn)?dòng),停頓電視機(jī)類子類電視機(jī)類子類數(shù)據(jù):功率數(shù)據(jù):功率 品牌品牌 型號(hào)型號(hào) 尺寸尺寸 方法:?jiǎn)?dòng),停頓方法:?jiǎn)?dòng),停頓 選頻道選頻道 調(diào)顏色聲音調(diào)顏色聲音冰箱類子類冰箱類子類數(shù)據(jù):功率數(shù)據(jù):功率 品牌品牌 型號(hào)型號(hào) 容量容量 功能功能 方法:?jiǎn)?dòng),停頓方法:?jiǎn)?dòng),停頓 調(diào)溫度,開(kāi)關(guān)門(mén)調(diào)溫度,開(kāi)關(guān)門(mén)自動(dòng)擁有自動(dòng)擁有父類的數(shù)父類的數(shù)據(jù),方法據(jù),方法新增本人新增本人需求的數(shù)需求的數(shù)據(jù)和方法據(jù)和方法承繼承繼虛框:該類虛框:該類的

22、對(duì)象的對(duì)象關(guān)于承繼性關(guān)于承繼性【例【例3-73-7】創(chuàng)建一個(gè)】創(chuàng)建一個(gè)A A類和它的子類類和它的子類B B類,我類,我們經(jīng)過(guò)子類們經(jīng)過(guò)子類B B的實(shí)例對(duì)象調(diào)用從父類的實(shí)例對(duì)象調(diào)用從父類A A承承繼的方法。繼的方法。【例子【例子3-83-8】假設(shè)子類重寫(xiě)了父類的方法,】假設(shè)子類重寫(xiě)了父類的方法,那么系統(tǒng)運(yùn)轉(zhuǎn)時(shí)調(diào)用子類的方法;假設(shè)那么系統(tǒng)運(yùn)轉(zhuǎn)時(shí)調(diào)用子類的方法;假設(shè)子類承繼了父類的方法未重寫(xiě),那子類承繼了父類的方法未重寫(xiě),那么系統(tǒng)運(yùn)轉(zhuǎn)時(shí)調(diào)用父類的方法。么系統(tǒng)運(yùn)轉(zhuǎn)時(shí)調(diào)用父類的方法。面向?qū)ο蟮母咎卣鳎憾鄳B(tài)面向?qū)ο蟮母咎卣鳎憾鄳B(tài)家電類父類家電類父類數(shù)據(jù):功率數(shù)據(jù):功率 品牌品牌 型號(hào)型號(hào)方法:?jiǎn)?dòng),停

23、頓方法:?jiǎn)?dòng),停頓電視機(jī)類子類電視機(jī)類子類數(shù)據(jù):功率數(shù)據(jù):功率 品牌品牌 型號(hào)型號(hào) 尺寸尺寸 方法:?jiǎn)?dòng),停頓方法:?jiǎn)?dòng),停頓 選頻道選頻道 調(diào)顏色聲音調(diào)顏色聲音冰箱類子類冰箱類子類數(shù)據(jù):功率數(shù)據(jù):功率 品牌品牌 型號(hào)型號(hào) 容量容量 功能功能 方法:?jiǎn)?dòng),停頓方法:?jiǎn)?dòng),停頓 調(diào)溫度,開(kāi)關(guān)門(mén)調(diào)溫度,開(kāi)關(guān)門(mén)啟動(dòng)電視:?jiǎn)?dòng)電視:顯示圖像,顯示圖像,聲音聲音啟動(dòng)冰箱:?jiǎn)?dòng)冰箱:開(kāi)場(chǎng)制冷開(kāi)場(chǎng)制冷音訊:?jiǎn)?dòng)音訊:?jiǎn)?dòng)承繼承繼面向?qū)ο蟮母咎卣髅嫦驅(qū)ο蟮母咎卣?.1.封裝:將數(shù)據(jù)成員封裝:將數(shù)據(jù)成員Data MemberData Member和和屬于此數(shù)據(jù)的操作方法屬于此數(shù)據(jù)的操作方法Operating

24、 Operating MethodMethod,放在同一個(gè)實(shí)體,放在同一個(gè)實(shí)體EntityEntity或?qū)ο笾?。或?qū)ο笾小?.2.承繼:父類定義承繼:父類定義DefineDefine一些通用的一些通用的屬性與行為,其子類繼續(xù)運(yùn)用。屬性與行為,其子類繼續(xù)運(yùn)用。3.3.多態(tài):在同一個(gè)類中可有許多同名的方多態(tài):在同一個(gè)類中可有許多同名的方法,但其參數(shù)數(shù)量與數(shù)據(jù)類型不同,而法,但其參數(shù)數(shù)量與數(shù)據(jù)類型不同,而且操作過(guò)程與前往值也能夠會(huì)不同。且操作過(guò)程與前往值也能夠會(huì)不同。1 1模塊化模塊化 2 2信息隱藏信息隱藏 1 1實(shí)現(xiàn)代碼復(fù)用實(shí)現(xiàn)代碼復(fù)用 2 2簡(jiǎn)化設(shè)計(jì)過(guò)程簡(jiǎn)化設(shè)計(jì)過(guò)程 處理其他言語(yǔ)中處理其他言語(yǔ)

25、中不能重名的問(wèn)題不能重名的問(wèn)題 修飾符修飾符 類成員包括數(shù)據(jù)成員和函數(shù)成員,類的每個(gè)成員都有一個(gè)稱為可訪問(wèn)性的屬性,用來(lái)維護(hù)類成員。Java有四種類成員的維護(hù)方式,分別為缺省的、public公有的、protected維護(hù)的、private私有的。 為了使程序具有良好易讀的風(fēng)格,建議最好在撰寫(xiě)類代碼時(shí)用不同的可訪問(wèn)性來(lái)組織類成員,并將public成員作為對(duì)外公布的接口放在最前面,以便引起關(guān)注。限訪問(wèn)修飾符關(guān)鍵字限訪問(wèn)修飾符關(guān)鍵字同一個(gè)類中同一個(gè)類中同一個(gè)包同一個(gè)包中中派生類派生類中中其他包中其他包中publicprotected無(wú)訪問(wèn)修飾符關(guān)鍵字private修飾符修飾符static類變量和方法

26、類變量和方法final常量、終類和方法常量、終類和方法native方法體可用其他語(yǔ)言方法體可用其他語(yǔ)言abstract抽象類和方法抽象類和方法syncronized線程互斥線程互斥Static關(guān)鍵字關(guān)鍵字 用用static修飾的變量或方法稱為類變量或修飾的變量或方法稱為類變量或類方法類方法 假設(shè)在聲明時(shí)用假設(shè)在聲明時(shí)用static修飾,那么聲明為修飾,那么聲明為靜態(tài)變量和靜態(tài)方法。在調(diào)用靜態(tài)方法靜態(tài)變量和靜態(tài)方法。在調(diào)用靜態(tài)方法時(shí),不要進(jìn)展實(shí)例化而直接調(diào)用。時(shí),不要進(jìn)展實(shí)例化而直接調(diào)用。 例子【例子【3-9】Final關(guān)鍵字關(guān)鍵字 修飾成員變量:常量修飾成員變量:常量 修飾成員方法:不能被子類

27、重寫(xiě)修飾成員方法:不能被子類重寫(xiě) 修飾類:不能成為超類修飾類:不能成為超類類成員和實(shí)例成員類成員和實(shí)例成員帶有帶有staticstatic的為類屬性和類方法;的為類屬性和類方法;不帶不帶staticstatic的為實(shí)例屬性和實(shí)例方法。的為實(shí)例屬性和實(shí)例方法。類屬性和類方法類屬性和類方法class Animalclass Animal int weight; int weight;String colour;String colour; static int count=0; static int count=0; Animal() Animal() +count;+count;System.o

28、ut.println(The total number of Animal is:+count);System.out.println(The total number of Animal is:+count); public void eat()public void eat() System.out.println(Eating); System.out.println(Eating); public static void move() public static void move() System.out.println(Animal can Moving); System.out.

29、println(Animal can Moving); 類屬性類屬性類方法類方法成員屬性成員屬性成員方法成員方法類屬性和類方法類屬性和類方法public class StaticTest1public class StaticTest1 public static void main( String args ) public static void main( String args ) System.out.println(The total number of Animal System.out.println(The total number of Animal is:+ Animal

30、.count)is:+ Animal.count);Animal.move();Animal.move();Animal a1=new Animal();Animal a1=new Animal();Animal a2=new Animal();Animal a2=new Animal(); 運(yùn)轉(zhuǎn)結(jié)果為運(yùn)轉(zhuǎn)結(jié)果為: :The total number of Animal is:0The total number of Animal is:0Animal can MovingAnimal can MovingThe total number of Animal is:1The total num

31、ber of Animal is:1The total number of Animal is:2 The total number of Animal is:2 實(shí)例屬性和實(shí)例方法實(shí)例屬性和實(shí)例方法 與類屬性和類方法相比較與類屬性和類方法相比較 ,實(shí)例屬性和實(shí),實(shí)例屬性和實(shí)例方法必需在實(shí)例化變量之后才干運(yùn)用,例方法必需在實(shí)例化變量之后才干運(yùn)用, 將上例中將上例中Animal.move()Animal.move()換成換成Animal.eat(),Animal.eat(), 結(jié)果如何?為什么?結(jié)果如何?為什么?籠統(tǒng)類和籠統(tǒng)方法籠統(tǒng)類和籠統(tǒng)方法定義目的是提供可由其子類共享的普通方式。定義目的是提

32、供可由其子類共享的普通方式。籠統(tǒng)類不能實(shí)例化?;\統(tǒng)類不能實(shí)例化?;\統(tǒng)方法沒(méi)有函數(shù)體。籠統(tǒng)方法沒(méi)有函數(shù)體?;\統(tǒng)方法必需在子類中給出詳細(xì)實(shí)現(xiàn)?;\統(tǒng)方法必需在子類中給出詳細(xì)實(shí)現(xiàn)?;\統(tǒng)類中可以沒(méi)有籠統(tǒng)方法,有籠統(tǒng)方法的類一籠統(tǒng)類中可以沒(méi)有籠統(tǒng)方法,有籠統(tǒng)方法的類一定是籠統(tǒng)類。定是籠統(tǒng)類?;\統(tǒng)類必需承繼,子類根據(jù)本身需求擴(kuò)展籠統(tǒng)類?;\統(tǒng)類必需承繼,子類根據(jù)本身需求擴(kuò)展籠統(tǒng)類。abstractabstract不能和不能和finalfinal疊用修飾類。疊用修飾類。不能有不能有privateprivate成員變量和方法。成員變量和方法。不能和不能和privateprivate、staticstatic、fi

33、nalfinal疊用修飾方法。疊用修飾方法?;\統(tǒng)類和籠統(tǒng)方法籠統(tǒng)類和籠統(tǒng)方法 動(dòng)物有動(dòng)物有MoveMove方法,動(dòng)物包括鳥(niǎo)類和魚(yú)類方法,動(dòng)物包括鳥(niǎo)類和魚(yú)類 鳥(niǎo)類的鳥(niǎo)類的MoveMove應(yīng)該是:應(yīng)該是: Flying Flying 魚(yú)類的魚(yú)類的MoveMove應(yīng)該是:應(yīng)該是: Swimming Swimming 要求:設(shè)計(jì)要求:設(shè)計(jì)FishFish類的程序設(shè)計(jì)人員一定要覆蓋類的程序設(shè)計(jì)人員一定要覆蓋movemove方法,。方法,。 大意大意的程序設(shè)計(jì)人員往往會(huì)忘記覆蓋某些大意大意的程序設(shè)計(jì)人員往往會(huì)忘記覆蓋某些特定的方法,呵斥程序運(yùn)轉(zhuǎn)上的錯(cuò)誤。特定的方法,呵斥程序運(yùn)轉(zhuǎn)上的錯(cuò)誤。 JavaJava

34、中提供了一個(gè)特殊的機(jī)制,能讓承繼的子中提供了一個(gè)特殊的機(jī)制,能讓承繼的子類一定要覆蓋某個(gè)特殊的方法才干創(chuàng)建實(shí)例運(yùn)類一定要覆蓋某個(gè)特殊的方法才干創(chuàng)建實(shí)例運(yùn)轉(zhuǎn),這種機(jī)制就是籠統(tǒng)方法和籠統(tǒng)類。轉(zhuǎn),這種機(jī)制就是籠統(tǒng)方法和籠統(tǒng)類。覆蓋的含義覆蓋的含義動(dòng)物類動(dòng)物類數(shù)據(jù):顏色數(shù)據(jù):顏色方法:運(yùn)動(dòng)方法:運(yùn)動(dòng)魚(yú)類魚(yú)類數(shù)據(jù):顏色數(shù)據(jù):顏色方法:運(yùn)動(dòng)游動(dòng)方法:運(yùn)動(dòng)游動(dòng)鳥(niǎo)類鳥(niǎo)類數(shù)據(jù):顏色數(shù)據(jù):顏色方法:運(yùn)動(dòng)飛翔方法:運(yùn)動(dòng)飛翔承繼承繼鳥(niǎo)類覆蓋了動(dòng)鳥(niǎo)類覆蓋了動(dòng)物類的物類的“運(yùn)動(dòng)運(yùn)動(dòng)方法方法魚(yú)類覆蓋了動(dòng)魚(yú)類覆蓋了動(dòng)物類的物類的“運(yùn)動(dòng)運(yùn)動(dòng)方法方法籠統(tǒng)類和籠統(tǒng)方法籠統(tǒng)類和籠統(tǒng)方法 籠統(tǒng)方法:籠統(tǒng)方法: abstract pub

35、lic void move();abstract public void move(); 籠統(tǒng)類不能生成實(shí)例對(duì)象籠統(tǒng)類不能生成實(shí)例對(duì)象 abstract class Animalabstract class Animal abstractabstract這個(gè)關(guān)鍵字只能用在類和方法上,這個(gè)關(guān)鍵字只能用在類和方法上,不能用在屬性和普通變量上不包括常不能用在屬性和普通變量上不包括常量。量。直接以分號(hào)直接以分號(hào)“;來(lái)終;來(lái)終了,不用加上左右大括了,不用加上左右大括號(hào)號(hào) 籠統(tǒng)類舉例籠統(tǒng)類舉例abstract class Animal /abstract class Animal /籠統(tǒng)類籠統(tǒng)類int w

36、eight;int weight;String colour;String colour; public void eat() public void eat() System.out.println(Eating); System.out.println(Eating); abstract public void move() abstract public void move();/定義籠統(tǒng)方法定義籠統(tǒng)方法 class Bird extends Animalclass Bird extends Animal public void move() public void move() Sys

37、tem.out.println(Flying); System.out.println(Flying); class Fish extends Animalclass Fish extends Animal public void move() public void move() System.out.println(Swimming ); System.out.println(Swimming ); public class StaticTest1public class StaticTest1public static void main(String argv)public stati

38、c void main(String argv) Bird b1 = new Bird();Bird b1 = new Bird(); Fish f1 = new Fish(); Fish f1 = new Fish(); b1.move(); b1.move(); f1.move(); f1.move(); 運(yùn)轉(zhuǎn)結(jié)果為運(yùn)轉(zhuǎn)結(jié)果為:Flying:Flying Swimming Swimming可用可用Animal a=new Animal a=new Animal()Animal()來(lái)定義實(shí)例嗎來(lái)定義實(shí)例嗎3.5 3.5 接口和包接口和包 3.5.13.5.1接口接口 接口是籠統(tǒng)類的一種,只包

39、含常量和接口是籠統(tǒng)類的一種,只包含常量和方法的定義,而沒(méi)有變量和詳細(xì)方法的方法的定義,而沒(méi)有變量和詳細(xì)方法的實(shí)現(xiàn)。實(shí)現(xiàn)。 1 1、 接口的定義接口的定義接口的定義包括接口聲明和接口體。接口的定義包括接口聲明和接口體。接 口 定 義 的 格 式 如 下 :接 口 定 義 的 格 式 如 下 :public interface public interface 接口名接口名extends extends 父接口名父接口名 /接口體接口體 2 2、 接口的實(shí)現(xiàn)接口的實(shí)現(xiàn) 在類的聲明中用在類的聲明中用implementsimplements子句來(lái)表示一個(gè)子句來(lái)表示一個(gè)類運(yùn)用某個(gè)接口,在類體中可以運(yùn)用接

40、口中類運(yùn)用某個(gè)接口,在類體中可以運(yùn)用接口中定義的常量,而且必需實(shí)現(xiàn)接口中定義的一定義的常量,而且必需實(shí)現(xiàn)接口中定義的一切方法。切方法。 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口一個(gè)類可以實(shí)現(xiàn)多個(gè)接口, ,在在implementsimplements子子句中用逗號(hào)分開(kāi)。句中用逗號(hào)分開(kāi)。 接口舉例接口舉例 例子例子3-12例子例子3-133.5.23.5.2包包 package和import語(yǔ)句 Package 用于指出class文件途徑package class文件途徑;Import 用于援用包的類用于援用包的類 一個(gè)包中通常有多個(gè)類,就用一個(gè)包中通常有多個(gè)類,就用 * 號(hào)替號(hào)替代代Import語(yǔ)句 import

41、類似于類似于C中的中的include語(yǔ)句語(yǔ)句 Import java.io.*; Import java.applet.*;包 package 包不僅是命名空間機(jī)制,也是訪問(wèn)控包不僅是命名空間機(jī)制,也是訪問(wèn)控制機(jī)制。制機(jī)制。 Java Java經(jīng)過(guò)包,將命名空間分經(jīng)過(guò)包,將命名空間分隔成很多獨(dú)立的小塊,一組相關(guān)的類隔成很多獨(dú)立的小塊,一組相關(guān)的類和接口存放在一個(gè)獨(dú)立的包內(nèi),從而和接口存放在一個(gè)獨(dú)立的包內(nèi),從而和其它包中的類或接口區(qū)分開(kāi)。和其它包中的類或接口區(qū)分開(kāi)。包的運(yùn)用包的運(yùn)用 第一步第一步建立和包同名的目錄。包和建立和包同名的目錄。包和文件系統(tǒng)目錄一一對(duì)應(yīng),有一個(gè)包,就文件系統(tǒng)目錄一一對(duì)應(yīng)

42、,有一個(gè)包,就有一個(gè)和其對(duì)應(yīng)的文件系統(tǒng)目錄。包內(nèi)有一個(gè)和其對(duì)應(yīng)的文件系統(tǒng)目錄。包內(nèi)的一切類或接口都必需在與包同名的目的一切類或接口都必需在與包同名的目錄下。錄下。 第二步第二步在類或接口所在文件的最前在類或接口所在文件的最前面聲明類或接口所在的包。包的聲明格面聲明類或接口所在的包。包的聲明格式如下:式如下: package package 包名包名1.1.包名包名2.2.包名包名n;n;援用包援用包 經(jīng)過(guò)經(jīng)過(guò)importimport將包引入程序中,其格式將包引入程序中,其格式如下:如下:import import 包名包名1. .1. .包名包名n.n.類名類名; ; 或或import import 包名包名1. .1. .包名包名n.n.* *; ;Java自動(dòng)引入的包當(dāng)前包。當(dāng)前包。缺省包,缺省包是無(wú)名包。缺省包,缺省包是無(wú)名包。java.langjava.lang包

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論