第七章 物件導向程式設計 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) 又稱為多態性,也是物件導向程式設計的重要概念之一,應用多形特性提供統一的呼叫介面,程式會自動根據不同的需求(參數),
您可能关注的文档
- 科学非科学与伪科学.DOC
- 科学院22和32课程工程学院32课程-FacultyofScienceCalgary.PDF
- 科技型中小企业发展工作简报-天津科委.PDF
- 科技成果评价流程-山东大学齐鲁医院青岛.PPT
- 科教制作项目报告书.DOC
- 科普知识竞赛初赛试卷-上海纺织工程学会.DOC
- 科普文章习作.DOC
- 科普中国百城千校万村行动-讲座课件.PPT
- 科技项目合同-温州经济技术开发区.DOC
- 科林论文奖评审会议.DOC
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
最近下载
- C-V2X与单车智能融合研究.pptx VIP
- 消防改造设计任务书.docx VIP
- 广东省佛山市顺德区2024-2025学年六年级下册期中考试语文试卷(有答案).pdf VIP
- 消防设计任务书.docx VIP
- 实施指南《GB12268-2012危险货物品名表》实施指南.pptx VIP
- 带电作业安全距离PPT课件.pptx VIP
- 林业成果图制作—林业专题图及制图(GIS制图技术).pptx
- 高中英语课件7开课名师-郭贝老师from page to screen.pdf VIP
- 丙种球蛋白被动免疫治疗原因不明性反复自然流产研究.pdf VIP
- (二模)南通市2025届高三第二次调研测试英语试卷(含标准答案).docx
原创力文档

文档评论(0)