- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Introduction toObject-Oriented Programming- Encapsulation James Chen Learning Objectives Everything is Object (Review) Introduction to object-oriented programming Encapsulation Lab: JavaZoo How to produce the System ? 了解與掌握問題, 然後設定問題的範圍 define Problem Scope 產出Problem Statement 如同堆積木般的架構出系統 根據需求資訊, 定出所必須要用的物件(元件, 積木) 文件中的名詞 檢視現有類別或是自建類別 在必要時產生物件, 並以訊息溝通方式讓物件互動 呼叫其它物件的method ( according to method’s signature ) Thinking in Object ! 以Object 為思考中心, 將相關的程式碼和資料結合在一起 Objects: 包含了: Properties 代表是物件必須知道(Know)的資訊 ( ex: object state, data members, instance variables, ..) Methods 代表物件知道要如何做, 並負責完成的方法 每一個物件都擁有自己的屬性和特徵值 必須有個別記憶空間來紀錄資訊 System v.s. Objects System : Message communication between Objects. Classes v.s. Objects Classes: Blueprint of Objects 定義同一類物件的共同屬性和特徵 當成製造(產生)同類的物件藍本 任何事物都是 Object ! 在 Java 語言中, 任何事物都是 Object . 為了速度考量, 基本資料型別(primitive data types)並不是物件 !! 但是有相對應的 warp class 提供給基本資料型別的資料封裝為物件 字串資料都被視為物件 (字串類別的物件!!) Java 的程式碼都是以類別(Classes)為主, 物件是利用已存在或定義好的類別來產生的 String myName = new String(“James Chen”); 類別資訊都存放在個別的類別檔(class file)之中 Java 提供了完整而充分的類別庫(Packages) Packages提供了很多基本功能以方便程式寫作!! 大部分都是以 Java 寫作而成 少部分和機器相關的程式碼以其他語言寫作 (JNI, C language) Introduction to OOP- Encapsulation Encapsulation : Encapsulates relative data (attributes) and methods (behaviors) together Information hiding 音響之於無線電之傳輸方法; 開車之於引擎傳動. 隱藏實作細節, 保留修改彈性! 避免‘牽一髮而動全身’!! 藉由設定必要存取權限, 避免不當存取與不必要之人為錯誤, 以提升程式的強固性. Introduction to OOP- Inheritance Inheritance : 新的類別(subclaass)自然繼承既有類別(superclass) 的 public attributes and methods, 但可以有自己的新屬性和方法. Reusibility: 利用已經存在的類別制定新類別, 加速軟體系統的開發,節省成本 運用既有已經驗證正確之元件, 可增加程式強固性 Derived(衍生類別) v.s. Base(基礎類別) Subclass 會加入新方法或屬性 Introduction to OOP- Polymorphism Polymorphism : 一個物件參考具有多種面貌, 根據所參考到之真實物件來反應訊息(針對相同訊息 各自有不同處理實作細節) 利用父類別參考(向上轉型)和動態連結的方法, 以便增加程式的擴充彈性 RTTI: 執行時期型別檢查 運用抽象化/介面的機制來分離介面與實作. Loosely Couple Encapsulation- Class Definition Describe the attributes each object will have Describe the behaviors each object will have Take
原创力文档


文档评论(0)