標籤:java學習 程式設計 物件導向
第一章 物件導向的基本概念
我們之所以將自然界分解,組織成各種概念,並按其含義分類,主要是因為我們是整個口語交流社會共同遵守的協定的參與者,這個協定以語言的形式固定下來......除非贊成這個協定中規定的有關語言資訊的組織和分類,否則我們根本無法交談。
—Benjamin Lee Whorf
一、物件導向編程的基礎:類和對象
1、類的定義:類是對具有共同狀態和行為規則的多個事物的統一描述;類描述了具有共同特性(資料元素)和行為(功能)的對象集合。
2、對象的定義:在現實世界中,對象是客觀存在的某一事物,普遍具有兩個特性:狀態(屬性)和行為。
在物件導向程式設計中,對象是一組資料和相關方法的集合。
3、物件導向三要素:封裝、繼承、多態
3.1、封裝:封裝是將代碼及其處理的資料繫結在一起的一種編程機制,該機制保證了程式和資料都不受外部幹擾且不被誤用。封裝的目的在於使對象的設計者和使用者分開,使用者不必知道對象行為實現的細節,只需要使用設計者提供的介面訪問對象。
3.1.1、封裝的好處:(1)模組化:代碼的編寫和維護可以獨立進行,不會影響其他模組,而且有很好的重用性;
(2)資料隱藏:提高了資料的安全性。
3.2、繼承:繼承是物件導向程式設計中兩個類之間的一種關係,是一個類可以繼承另一個類的狀態和行為。被繼承的類稱為父類,繼承父類的類稱為子類。一個父類可以同時擁有多個子類,但是一個子類只能繼承一個父類。每一個子類除了從父類繼承父類的變數和方法外,也可以添加自己的變數和方法。
繼承的好處:使父類代碼得到重用,節省一些代碼的編寫工作,提高編程效率。
3.3、多態:多態性可以用“一個對外介面,多個內在實現方法”來表示。即在一個中可以定義多個同名,但參數的類型或者個數不同的方法,程式在調用方法時,系統會自動根據參數類型和個數調用不同的方法。這種機制稱為方法的重載。此外,當利用繼承由父類建立子類時,可以重新定義父類中的某些方法,這被稱為覆蓋。
在Java中,通過方法覆蓋和重載方法來實現程式的多態。
Java學習筆記