版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1,第二章 面向?qū)ο?OO)程序設(shè)計(jì)基本概念,2,本章總體綱要,面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想對(duì)象與類封裝性繼承性接口多態(tài)性,3,實(shí)體,抽象數(shù)據(jù)類型,類,對(duì)象,4,面向?qū)ο蟪绦蛟O(shè)計(jì)是使用類和對(duì)象將現(xiàn)實(shí)世界中真實(shí)的或抽象的實(shí)體在程序中建立模型。,面向?qū)ο蟪绦蛟O(shè)計(jì),5,面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想?,面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP) 傳統(tǒng):面向過程對(duì)象例子汽車:車輪、發(fā)動(dòng)機(jī)、方向盤、座椅、車門和窗狗:動(dòng)物的子類將數(shù)據(jù)(屬性)和方
2、法(行為或功能)封裝到類(classes)中對(duì)象(objects): 類的實(shí)例或類本身三個(gè)基本特性:封裝性、繼承性和多態(tài)性,6,面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,什么是對(duì)象(Object)什么是消息(Message) 什么是類(Class) 什么是繼承(Inheritance)什么是接口(Interface)什么是多態(tài),7,對(duì)象(Object)的概念,軟件對(duì)象是現(xiàn)實(shí)對(duì)象在程序中的模型?,F(xiàn)實(shí)世界對(duì)象的兩個(gè)特征:狀態(tài)(state)
3、與行為(behavior).軟件對(duì)象也具有狀態(tài)與行為:狀態(tài):以一個(gè)或多個(gè)變量保存 行為:用方法實(shí)現(xiàn)行為,8,對(duì)象(Object)的概念,定義:對(duì)象由變量與相關(guān)的方法結(jié)合起來構(gòu)成的。,9,對(duì)象實(shí)例,一個(gè)特定的對(duì)象稱為實(shí)例。,10,什么是消息,對(duì)象之間通過發(fā)送消息進(jìn)行交互與通信。,11,消息的構(gòu)成,消息由三部分構(gòu)成:接收消息的對(duì)象方法名稱方法的參數(shù),12,消息示例,13,消息機(jī)制的好處,對(duì)象的行為是通過它的方法表達(dá)的,所以
4、消息傳遞支持對(duì)象之間的所有交互。相互交換消息的對(duì)象可以在不同的進(jìn)程,甚至在不同的機(jī)器上。,14,什么是類(class),A class is a blueprint, or prototype, that defines the variables and the methods common to all objects of a certain kind. 一個(gè)類是一個(gè)藍(lán)圖或樣板,它定義了某一特定類的所有對(duì)象
5、都具有的變量與方法。,15,類的定義,類的定義格式如下:[類修飾詞] class 類名 [extends 父類名] [implements 接口名稱列表]{ 類體},16,類的結(jié)構(gòu),17,類示例-自行車,18,類的實(shí)例化,19,多個(gè)類組成的程序,很多Java程序需要多個(gè)類完成一項(xiàng)任務(wù)一個(gè)文件一般只含有一個(gè)類每個(gè)文件的長度一般不要太長最長一般不要超過2000行,20,類中的變量與方法,變量實(shí)例變量(instance
6、variable) 包含特定對(duì)象的狀態(tài)類變量(class variable) 由類的所有實(shí)例共享方法實(shí)例方法(instance method)通過實(shí)例進(jìn)行訪問的方法。類方法 (class method) 通過類進(jìn)行調(diào)用的方法。,21,方法定義,與C++程序不同的是: 每個(gè)方法都必須隸屬于某個(gè)類方法定義的格式: [方法修飾詞] 返回類型 方法名(方法的參數(shù)列表) { 方
7、法體 }返回類型: 返回?cái)?shù)據(jù)的數(shù)據(jù)類型除了構(gòu)造方法,一般要求返回類型: 要么為void ,要么為某種數(shù)據(jù)類型int、byte、float或String最多只能返回一個(gè)值方法名: 任何一個(gè)合法的標(biāo)識(shí)符參數(shù)列表:用逗號(hào)(,)分隔開,22,構(gòu)造方法,構(gòu)造方法在創(chuàng)建新的實(shí)例對(duì)象時(shí)起作用構(gòu)造方法通常用來初始化實(shí)例對(duì)象,例如: 初始化成員域或設(shè)置工作環(huán)境構(gòu)造方法的特點(diǎn):與類同名沒有返回值可以含有多種構(gòu)造方法(重載)但
8、必須具有不同的參數(shù)列表,23,默認(rèn)的構(gòu)造方法,如果沒有顯式地定義類的構(gòu)造方法,則系統(tǒng)會(huì)為該類定義一個(gè)默認(rèn)的構(gòu)造方法。該構(gòu)造方法不含任何參數(shù)。這個(gè)默認(rèn)的構(gòu)造方法首先調(diào)用其父類的不含任何參數(shù)的構(gòu)造方法,然后初始化新生成的實(shí)例的各個(gè)成員域變量默認(rèn)值: 基本數(shù)值類型: 0; boolean: false; 引用數(shù)據(jù)類型: null最好自己寫構(gòu)造方法一旦在類中定義了構(gòu)造方法,系統(tǒng)就不會(huì)再創(chuàng)建這個(gè)默認(rèn)的不含參數(shù)的構(gòu)造方法。,24,封 裝
9、,含義:對(duì)象的變量置于對(duì)象方法的包裹之中,被對(duì)外隱藏。優(yōu)點(diǎn): 模塊化:不同對(duì)象代碼之間有一定獨(dú)立,對(duì)象可以 在系統(tǒng)中方便移動(dòng)。 信息隱藏:保證修改對(duì)象信息時(shí),不會(huì)對(duì)訪問它 的對(duì)象產(chǎn)生影響。,25,類成員的封裝性,成員(域或方法)的訪問控制方式:1) public2) private3) protected4) default(缺省方式),26,什么是繼承,27,什么是繼承,子類 A class
10、that is derived from a particular class. 從某個(gè)特定類派生出來的類。父類 A class from which a particular class is derived. 派生出某個(gè)特定類的類。,28,繼承的含義,子類繼承父類的狀態(tài)與方法。子類可以增加新的變量和方法。子類可以重寫(Override)繼承來的方法。注:繼承關(guān)系可以有多層,
11、子類要繼承它所有父類的方法與狀態(tài)。,29,繼承性的實(shí)現(xiàn),采用關(guān)鍵字extendspublic class MountainBike extends Bicycle { // … },30,多重繼承,在有些計(jì)算機(jī)語言中,允許一個(gè)類有多個(gè)直接父類。這種繼承關(guān)系稱為多重繼承Java不支持多重繼承Java 允許一個(gè)類有多個(gè)直接父接口(interface),31,Java 中的Object類,Java中的O
12、bject類是最頂層的類,所有其他的類都是它直接或間接的子類。類型是Object的變量可以指向任意的對(duì)象。Object提供了運(yùn)行在JVM中的所有對(duì)象都需要的行為(方法)。,32,繼承的優(yōu)點(diǎn),通過繼承可以重用父類中的代碼。程序員可以定義含有一般行為的抽象類。抽象類中的很多方法是沒有實(shí)現(xiàn)的??梢栽诔橄箢惖幕A(chǔ)上定義特定的子類,實(shí)現(xiàn)具體的細(xì)節(jié)。,33,什么是接口,Java語言中,接口是彼此不相關(guān)對(duì)象之間發(fā)生聯(lián)系的手段。 接口類似于一種對(duì)
13、某種行為達(dá)成的協(xié)議。這種協(xié)議以包含在接口中的一組常量、一些方法定義的形式提出來。對(duì)象必須實(shí)現(xiàn)接口,才能具有某種行為。 接口機(jī)制中沒有強(qiáng)制這些類之間建立超、子類關(guān)系。,34,接口(interface),接口(interface)就象是一種特殊的類成員方法: abstract成員域: final和static接口(interface)中所有的方法和域必須都是 public的每個(gè)接口一般定義在一個(gè).java 文件中,
14、35,實(shí)例,例1: 通過接口定義一些常量public interface Constants{public static final int ONE = 1;public static final int TWO = 2;public static final int THREE = 3;} // End of interface: Constants例2:interface Shape{ // This
15、 method cannot have a body. public abstract void mb_draw(Graphics2D g);} // End of interface: Shape,36,注意事項(xiàng),接口中成員方法的默認(rèn)方式是 public 和 abstract接口中成員域的默認(rèn)方式是public、 static和final,37,優(yōu)點(diǎn),一個(gè)類可以繼承多個(gè)接口例如:,public class A exten
16、ds B implements C, D{ },38,總結(jié): 接口的使用方法,一個(gè)類實(shí)現(xiàn)接口( interface)多個(gè)接口采用逗號(hào)分隔類中必須定義接口中的所有方法這些方法必須具有相同的聲明方式,39,多態(tài)性的種類,靜態(tài)的多態(tài)性?重載動(dòng)態(tài)的多態(tài)性?覆蓋,40,靜態(tài)的多態(tài)性(重載),在編譯時(shí)就能夠被識(shí)別針對(duì)的是同一個(gè)類內(nèi)的同名方法例如: public int square(int x){ return x
17、* x; }public double square(double x){ return x * x;},41,識(shí)別重載方法,識(shí)別標(biāo)志:參數(shù)的個(gè)數(shù)、類型、數(shù)據(jù)類型的排列順序返回值不能做為識(shí)別的標(biāo)志,42,動(dòng)態(tài)多態(tài)性(覆蓋),在程序運(yùn)行時(shí)才被識(shí)別重寫父類的方法要求相同的聲明例如:public class J_HelloApplet extends Applet{ public void paint(
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- windows程序設(shè)計(jì)的基本概念
- 面向?qū)ο蟪绦蛟O(shè)計(jì)的概念
- 程序設(shè)計(jì)語言基本概念與試題
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》
- 面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)
- 實(shí)驗(yàn) 面向?qū)ο蟪绦蛟O(shè)計(jì)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》 考試
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)(java)》
- 面向?qū)ο蟪绦蛟O(shè)計(jì)報(bào)告
- 面向?qū)ο蟮某绦蛟O(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)理論
- 一面向?qū)ο蟪绦蛟O(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)下
- 面向?qū)ο蠓椒俺绦蛟O(shè)計(jì)
- c++面向?qū)ο蟪绦蛟O(shè)計(jì)
- java面向?qū)ο蟪绦蛟O(shè)計(jì)教案
- 課題面向?qū)ο蟮某绦蛟O(shè)計(jì)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》輔導(dǎo)四
評(píng)論
0/150
提交評(píng)論