第七章物件導向程式設計-yuhmoon.sg1013.myweb.ppt

第七章物件導向程式設計-yuhmoon.sg1013.myweb.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章物件導向程式設計-yuhmoon.sg1013.myweb

第七章 物件導向程式設計 Object Oriented Programming Design 封包(package) 封包是類別的集合,可以將已經完成的類別,依照分類放在個別的目錄下便於整理 預設封包(default package) 不需加入任何封包卻可以使用各種的功能 包含標準類別的預設封包為 java.lang 封包(續) 物件導向語言的基本特性 封裝(encapsulation) 根據類別成員的特性分成預設、private、 protected、 public等四個封裝等級,亦即存取類別成員的權限限制 繼承(inheritance) 建立新類別時,修改、添加或繼承現有類別的定義 多型(polymorphism) 又稱為同名異式,method overload即為多型的一種應用,當一個新的類別繼承一個或多個以上的虛擬函數時,就稱為多型類別 封裝(encapsulation) 物件導向的最基本概念,分為以下四種特性 預設 不加private, protected, public等關鍵字 private 私有成員 protected 保護成員,用於繼承 public 公有成員 封裝(續) 類別 類別只會用到public與預設兩種,private與protected不可使用於類別 預設的類別只能被同一個檔案裡的類別所存取 public方式的類別則可以被其他檔案裡的類別所存取 以之前計算標準體重的範例而言,倘若sdweight類別的存取方式改為預設的話,編譯時將會出現以下的錯誤訊息 封裝(續) 類別成員 類別成員分為變數與方法兩種 預設 其存取範圍為同一封包中的任何類別 private 其存取範圍為僅所在的類別可存取 protected 其存取範圍為同一封包中的任何類別,所有繼承的子類別,無論是否位於同一個封包 public 其存取範圍為任何封包中的任何類別 封裝(續) 繼承(inheritance) 使用繼承則不用重新撰寫重複的功能,直接繼承具有所需功能的類別即可,藉此縮短程式的開發時間 繼承分為 多重繼承 Java不具有多重繼承的功能 單一繼承 Java僅具有單一繼承的功能 繼承(續) 被繼承的類別稱為父類別或基類別(base class / parent class / super class) ,經由繼承產生的類別稱為子類別或衍生類別(derived class / sub class / child class) 繼承(續) extends 用以繼承關係的關鍵字 繼承(續) super 可存取所繼承的base class (parent class ,super class) 資訊,包括被overload的method及變數 有效範圍僅限於被直接繼承的base class 呼叫格式 super.base class的變數或方法 假如是呼叫base class的constructor則用super()的方法才行 繼承(續) 修改繼承的成員特性 在衍生類別中,若新增的成員與base class中的成員名稱相同時,base class中的成員名稱將被隱藏起來,直接使用衍生類別中的成員內容,此種方法可以達到修改繼承成員的結果 繼承(續) 衍生類別與建構函數 使用衍生類別建立物件時,會自動執行base class的建構函數 當base class中有多個建構函數時,則必須在衍生類別中使用super()命令,用以決定執行哪一個建構函數 繼承(續) final 若不加存取限制的話,方法可以被所繼承的類別繼續複載下去,變數可以任意變更數值,同樣的,類別也可以繼續被繼承下去,使用final關鍵字可以避免此種情形 用在method 表示method無法繼續被複載 用在變數(類似C++中的#define) 表示變數變為一常數,除了所屬的建構函數可以設定初始值外,不能改變其值 用在類別 表示此類別將無法再被其他類別繼承 繼承(續) this this關鍵字會參考到物件自己本身 通常在程式中被省略 繼承(續) abstract(抽象) 若在類別宣告處加上abstract關鍵字,表示這個類別式抽象類別 抽象類別不能直接拿來建立物件,只能透過繼承來建立衍生類別 在建立類別時,若有方法尚未決定如何設計時,卻又希望繼承的類別能時做這個方法,就可將此方法加上abstract 抽象類別不一定要有抽象方法,但是,具有抽象方法的類別,一定要設為抽象類別 繼承(續) interface(介面) Java裡沒有多重繼承,若要用到多重繼承,必須以interface為替代方案 繼承(續) interface的基本架構 多形(polymorphism) 又稱為多態性,也是物件導向程式設計的重要概念之一,應用多形特性提供統一的呼叫介面,程式會自動根據不同的需求(參數),

文档评论(0)

sunhao111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档