如何理解面向物件思想
阿新 • • 發佈:2019-01-03
我們學習JAVA語言必須要掌握物件和類,這樣的話就可以更深層次的理解JAVA這種面向物件的程式開發理念,從而更好更快地掌握JAVA的變成 思想和方法。掌握類和物件是JAVA語言變成的基礎。那麼,問題來了,到底什麼是物件和類呢?
一:物件
關於物件的理解其實非常簡單。在我們的身邊,每一種事物都是一種物件,統籌一句話概括就是,物件是事物存在的實體。例如:電視、汽車、 書桌、樓房包括我們人類自身都是一種物件。物件的話又劃分為兩種,即靜態和動態兩部分。靜態:顧名思義,指的就是不能動的部分。就拿我們自 身來說,每個人的你年齡、性別、身高、體重等都屬於靜態。而這些特徵都可概括為屬性,所有的物件二:類
簡單概括,類是封裝物件屬性和行為的載體,反過來說具有相同屬性和行為的一類實體被成為類。舉一個簡單的例子,鳥類。鳥類封裝了所有鳥 的具體屬性(嘴、翅膀、爪子)和具有的行為(飛行、捕食)。這樣說,相信大家都能理解。說到物件,不得不重點提一下物件的三個基本特徵: 封裝、繼承、多型。三:封裝
定義:隱藏物件的屬性和實現細節,僅對外公開介面,控制在程式中屬性的讀和修改的訪問級別。 封裝的目的:增強安全性和簡化程式設計,使用者不必瞭解具體的實現細節,而只是要通過外部介面,特定的訪問許可權來使用類的成員。四:繼承(extends)
目的:實現程式碼的複用。 介紹:當兩個類具有相同的特徵(屬性)和行為(方法)時,可以將相同的部分抽取出來放到一個類中作為父類,其它兩個類繼承這個父類。繼承後子 類自動擁有了父類的屬性和方法,但特別注意的是,父類的私有屬性(private)和構造方法不能被繼承。另外子類可以寫自己特有的屬性和方法,目 的 是實現功能的擴充套件,子類也可以複寫父類的方法,即方法的重寫。子類不五:多型
概念:同一訊息可以根據傳送物件的不同而採用多種不同的行為方式,根據其實際型別呼叫其相應的方法。 實現方式: (1)基於繼承實現的多型 基於繼承的實現機制主要表現在父類和繼承該父類的一個或多個子類對某些方法的重寫,多個子類對同一方法的重寫可以表現出不同的行為。 (2)基於藉口實現的多型繼承是通過重寫父類的同一方法的幾個不同子類來體現的,那麼就是通過實現介面,覆蓋介面中同一方法中不同的類來體現的。在介面的多型 中,指向介面的引用必須是指定實現了該介面的一個類的例項程式。在執行時,根據物件引用的實際型別來執行對應的方法。繼承都是單繼承,只能 為 一組相關的類提供一直的服務介面,但是介面可以是多繼承多實現,它能夠利用一組相關或者不相關的介面進行組合與擴充,能夠對外提供一致的 服 務介面。所以它相對於繼承來說有更好的靈活性。 好處:程式的可擴充套件性及可維護性增強。
總結:
1.封裝是為了對物與外界交流進行抽象。 2.繼承是為了對物的資訊進行抽象。 3.多型是為了對物的行為進行抽象。 說到這裡,給大家稍微擴充套件一下關於抽象和介面一些相關資訊。抽象(abstract)
介紹:在面向物件的概念中,我們知道所有的物件都是通過類來描繪的,但是並不是所有的類都是用來描繪物件的,如果一個類中 沒有包含足夠的資訊來描繪一個具體的物件,這樣的類就是抽象類。抽象類往往用來表示我們在對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象,我們不能把他們例項化(拿不出一個具體 的東西),所以稱之為抽象。 例如:publicabstract void xuesheng (); 關於抽象方法: 1、抽象類中可以有抽象方法,也可以有非抽象方法。 2、抽象類中可以全都是非抽象方法。 3、一個抽象類中如果沒有抽象方法,那麼這個類不能例項化,反之如果有抽象方法,那麼這個類一定是抽象類。介面(interface)
概念:把原有的事物與功能增強,在不改變類方法的前提下,進一步進行功能擴充套件。 介面歸納: 1、在JAVA中介面是一種專門的型別,用關鍵字interface來定義。 2.、介面中只能定義抽象方法,不能有方法體,一定是public修飾。(介面中的方法都是抽象的) 3、介面中可以定義變數,但實際上是static final 修飾的變數。 4、介面中不能定義靜態方法。 介面的定義: public interface Interface{static final int i; //介面中不能有普通資料成員,只能夠有靜態的不能被修改的資料成員,static表示全域性,final表示不可修改,可以不用static final 修飾,會隱式的宣告為static和final
public void xuesheng1(); //介面中的方法一定是抽象方法,所以不用abstract修飾
public void xuesheng2(); //介面中不能賦予方法的預設行為,即不能有方法的具體實現
}