03.什麼是面向物件呢?(學習目標)
目標:
·理解面向物件三大主要特徵
·掌握類與物件的區別及使用
·掌握類中封裝性的基礎實現
·掌握類中構造方法以及構造方法過載的概念及使用
·掌握陣列的使用以及初始化操作
·掌握引用資料型別的特點以及引用傳遞操作分析方法
·掌握String類的特點以及String類中常用方法的使用
·掌握this、static關鍵字的使用
·掌握內部類的特點以及使用形式
·理解連結串列操作的實現原理以及常用操作方法
面向物件, 採用的更多的是進行子模組化的設計, 每一個
模組都需要單獨存在, 並且可以被重複利用。所以. 面向物件的開發更像是一個具備標準模式的程式設計開
發, 每一個設計的子模組都可以單獨存在, 需要時只要通過簡單的組裝即可使用。
提示:面向過程與面向物件的區別。
例如, 如果說現在要製造一把手槍, 則可以有以
下兩種做法。
• 做法一(面向過程):將製造手槍所需的材料準備好, 由個人負責指定手槍的標
準, 例如:槍桿長度、扳機設定等, 但是這樣做出來的手槍, 完全只是為一把手槍的規格
服務. 如果某個零件(例如:扳機壞了)需要更換的時候, 就必須去首先清楚這把手槍的
製造規格, 才可以進行生產, 所以這種做法不具備標準化和通用性;
• 做法二(面向物件):首先由一個設計人員, 設計出手槍中各個零件的標準, 並且
將不同的零件交給不同的製造部門, 各個部門按照標準生產, 最後統一由一個部門進行組
裝, 這樣即使某一個零件壞掉, 也可以輕易地進行維修, 這樣的設計更加具備通用性與標
準模組化設計要求。
對於面向物件的程式設計有封裝性、繼承性、多型性3 個主要特性。
封裝性:
封裝是面向物件的方法所應遵循的一個重要原則。官有兩個含義: 一層含義是指把物件的屬性和行
為看成一個密不可分的整體, 將這兩者“封裝” 在一個不可分割的獨立單位(即物件)中;另一層含義
指’資訊隱蔽”, 把不需要讓外界知道的資訊隱藏起來. 有些物件的屬性及行為允許外界使用者知道或使
用, 但不允許更改, 而另一些屬性或行為, 則不允許外界知曉, 或只允許使用物件的功能, 而儘可能隱
蔽物件的功能實現細節。
封裝機制在程式設計中的表現是, 把描述物件屬性的變數及實現物件功能的方法合在一起, 定義為
一個程式單位, 並保證外界不能任意更改其內部的屬性值, 也不能任意調動其內部的功能方法。
封裝機制的另一個特點是, 為封裝在一個整體內的變數及方法規定了不同級別的“可見性” 或訪問
僅限。
繼承性:
繼承是面向物件方法中的重要概念, 並且是提高軟體開發效率的重要手段。
首先擁有反映事物一般特性的類, 然後在其基礎上派生出反映特殊事物的類。例如, 已有的汽車的
類, 該類中描述了汽車的普遍屬性和行為, 進一步再產生轎車的類, 轎車的類繼承於汽車的類, 轎車類
不但擁有汽車類的全部屬性和行為, 還增加轎車特有的屬性和行為。
在Java程式設計中, 已有的類可以是Java開發環境所提供的一批最基本的程式一一類庫。使用者開
發的程式類繼承了這些已有的類, 這樣, 類所描述過的屬性及行為, 即已定義的變數和方法, 在繼承產
生的類中完全可以使用。被繼承的類稱為父類或超類, 而經繼承產生的類稱為子類或派生類。根據繼承
機制, 派生類繼承了超類的所有成員, 並相應地增加了向己的一些新的成員。
雨向物件程式設計中的繼承機制, 大大增強了程式程式碼的可複用性, 提高了軟體的開發效率, 降低
了程式產生錯誤的可能性, 也為程式的修改擴充提供了便利。
若一個子類只允許繼承一個父類, 稱為單繼承;若允許繼承多個父類, 稱為多繼承。目前許多面向
物件程式設計語育不支援多繼承。而Java語言通過介面( interface )的方式來彌補囪於Java不支援多
繼承而帶來的子類不能享用多個父類的成員的缺憾。
多型性:
多型·是面向物件程式設計的又一個重要特徵。多型是指允許程式中出現重名現象。Java語育中含有
方法過載與物件多型兩種形式的多型。
方法過載:在一個類中,允許多個方法使用同一個名字, 但方法的引數不同, 完成的功能也不同。
物件多型:子類物件可以與父類物件進行相互轉換, 而且根據其使用的子類不同完成的功能也
不同。
多型的特性使程式的抽象程度和簡捷程度更高, 有助於程式設計人員對程式的分組協同開發。