面向對象程序設計基本概念.ppt_第1頁
面向對象程序設計基本概念.ppt_第2頁
面向對象程序設計基本概念.ppt_第3頁
面向對象程序設計基本概念.ppt_第4頁
面向對象程序設計基本概念.ppt_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論