Java面向物件程式設計的基本概念

來源:文萃谷 2.54W

Java語言提供類、介面和繼承等原語,為了簡單起見,只支援類之間的單繼承,但支援介面之間的多繼承,並支援類與介面之間的實現機制,下面是關於Java面向物件程式設計的基本概念,歡迎大家閱讀瞭解!

Java面向物件程式設計的基本概念

物件

何謂面向物件是什麼意思呢?

面向物件程式設計是將人們認識世界過程中普遍採用的思維方法應用到程式設計中。物件是現實世界中存在的事物,它們是有形的,如某個人、某種物品;也可以是無形的,如某項計劃、某次商業交易。物件是構成現實世界的一個獨立單位,人們對世界的認識,是從分析物件的特徵入手的。

物件的特徵分為靜態特徵和動態特徵兩種。靜態的特徵指物件的外觀、性質、屬 性等;動態的特徵指物件具有的功能、行為等。客觀事物是錯綜複雜的,但人們總是 從某一目的出發,運用抽象分析的能力,從眾多的特徵中抽取最具代表性、最能反映 物件本質的若干特徵加以詳細研究。

人們將物件的靜態特徵抽象為屬性,用資料來描述,在 Java 語言中稱之為變數;人們將物件的動態特徵抽象為行為,用一組程式碼來表示,完成對資料的操作,在 Java 語言中稱之為方法。一個物件由一組屬性和一組對屬性進行操作的方法構成。

將具有相同屬性及相同行為的一組物件稱為類。廣義地講,具有共同性質的事物的集合就稱為類。

在面向物件程式設計中,類是一個獨立的單位,它有一個類名,其內部包括成員變數,用於描述物件的屬性;還包括類的成員方法,用於描述物件的行為。在 Java 程 序設計中,類被認為是一種抽象資料型別,這種資料型別,不但包括資料,還包括方法。這大大地擴充了資料型別的概念。

類是一個抽象的概念,要利用類的方式來解決問題,必須用類建立一個例項化的類物件,然後通過類物件去訪問類的成員變數,去呼叫類的成員方法來實現程式的功能。這如同“汽車”本身是一個抽象的概念,只有使用了一輛具體的汽車,才能感受到汽車的功能。

一個類可建立多個類物件,它們具有相同的屬性模式,但可以具有不同的屬性值。Java 程式為每一個類物件都開闢了記憶體空間,以便儲存各自的屬性值。

面向物件的.程式設計有三個主要特徵:封裝性,繼承性,多型性

封裝性

封裝是面向物件的方法所應遵循的一個重要原則。

它有兩個含義:一是指把物件的屬性和行為看成一個密不可分的整體,將這兩者“封裝”在一個不可分割的獨立單位(即物件)中。

另一層含義指“資訊隱蔽”,把不需要讓外界知道的資訊隱藏起來,有些物件的屬性及行為允許外界使用者知道或使用,但不允許更改,而另一些屬性或行為,則不允許外界知曉;或只允許使用物件的功能,而儘可能隱蔽物件的功能實現細節。

封裝機制在程式設計中表現為,把描述物件屬性的變數及實現物件功能的方法合在一起,定義為一個程式單位,並保證外界不能任意更改其內部的屬性值,也不能任意調動其內部的功能方法。

封裝機制的另一個特點是,為封裝在一個整體內的變數及方法規定了不同級別的 “可見性”或訪問許可權。

繼承性

繼承是面向物件方法中的重要概念,並且是提高軟體開發效率的重要手段。

首先擁有反映事物一般特性的類,然後在其基礎上派生出反映特殊事物的類。如已有的汽車的類,該類中描述了汽車的普遍屬性和行為,進一步再產生轎車的類,轎車的類是繼承於汽車類,轎車類不但擁有汽車類的全部屬性和行為,還增加轎車特有的屬性和行為。

在 Java 程式設計中,已有的類可以是 Java 開發環境所提供的一批最基本的程式——類庫。使用者開發的程式類是繼承這些已有的類。這樣,現在類所描述過的屬性及行為,即已定義的變數和方法,在繼承產生的類中完全可以使用。被繼承的類稱為父類或超類,而經繼承產生的類稱為子類或派生類。根據繼承機制,派生類繼承了超類的所有成員,並相應地增加了自己的一些新的成員。

面向物件程式設計中的繼承機制,大大增強了程式程式碼的可複用性,提高了軟體的開發效率,降低了程式產生錯誤的可能性,也為程式的修改擴充提供了便利。

若一個子類只允許繼承一個父類,稱為單繼承;若允許繼承多個父類,稱為多繼承。目前許多面向物件程式設計語言不支援多繼承。而 Java 語言通過介面(interface) 的方式來彌補由於 Java 不支援多繼承而帶來的子類不能享用多個父類的成員的缺憾。

類的多型性

多型是面向物件程式設計的又一個重要特徵。多型是允許程式中出現重名現象。 Java 語言中含有方法過載與成員覆蓋兩種形式的多型。

方法過載:在一個類中,允許多個方法使用同一個名字,但方法的引數不同,完成的功能也不同。

成員覆蓋:子類與父類允許具有相同的變數名稱,但資料型別不同,允許具有相同的方法名稱,但完成的功能不同。

多型的特性使程式的抽象程度和簡捷程度更高,有助於程式設計人員對程式的分 組協同開發。

熱門標籤