從這篇開始,我將和大家開始接觸JAVA學習中非常重要的部分——面向對象程序設計,當然首先和大家一起來理解幾個重要的概念,這些概念雖然都是文字性,但也是需要大家和我一樣能夠理解的。
據說早期的程序設計經歷了“面向問題”、“面向過程”的階段,隨著計算機技術的發展,以及所要解決問題的復雜性的提高,以往的程序設計方法已經不能適應這種發展的需求。于是,從20世紀70年代開始,相繼出現了多種面向對象的程序設計語言,下面是計算機語言的發展過程:
一、對象
面向對象程序設計是將人們認識世界過程中普遍采用的思維方法應用到程序設計中。對象是現實世界中存在的事物,它們是有形的,如某個人、某種物品等等。
對象的特征分為靜態特征和動態特征兩種。靜態的特征指對象的外觀、性質、屬性等;動態的特征指對象具有的功能、行為等??陀^事物是錯綜復雜的,但人們總是從某一目的出發,運用抽象分析的能力,從眾多的特征中抽取最具代表性、最能反映對象本質的若干特征加以詳細研究。人們將對象的靜態特征抽象為屬性,用數據來描述,在Java語言中稱之為變量;人們將對象的動態特征抽象為行為,用一組代碼來表示,完成對數據的操作,在Java語言中稱之為方法,。一個對象由一組屬性和一組對屬性進行操作的方法構成。
二、類
將具有相同屬性及相同行為的一組對象稱為類。廣義地講,具有共同性質的事物的集合就稱為類。
類是一個抽象的概念,要利用類的方式來解決問題,必須用類創建一個實例化的類對象,然后通過類對象去訪問類的成員變量,去調用類的成員方法來實現程序的功能。這如同“汽車”本身是一個抽象的概念,只有使用了一輛具體的汽車,才能感受到汽車的功能。一個類可創建多個類對象,它們具有相同的屬性模式,但可以具有不同的屬性值。Java程序為每一個類對象都開辟了內存空間,以便保存各自的屬性值。
面向對象的程序設計有三個主要特征,如下:
? 封裝性
? 繼承性
? 多態性
1) 封裝性
封裝是面向對象的方法所應遵循的一個重要原則。它有兩個含義:一是指把對象的屬性和行為看成一個密不可分的整體,將這兩者“封裝”在一個不可分割的獨立單位(即對象)中。另一層含義指“信息隱蔽”,把不需要讓外界知道的信息隱藏起來,有些對象的屬性及行為允許外界用戶知道或使用,但不允許更改,而另一些屬性或行為,則不允許外界知曉;或只允許使用對象的功能,而盡可能隱蔽對象的功能實現細節。
封裝機制在程序設計中表現為,把描述對象屬性的變量及實現對象功能的方法合在一起,定義為一個程序單位,并保證外界不能任意更改其內部的屬性值,也不能任意調動其內部的功能方法。
封裝機制的另一個特點是,為封裝在一個整體內的變量及方法規定了不同級別的“可見性”或訪問權限。
2) 繼承性
首先擁有反映事物一般特性的類,然后在其基礎上派生出反映特殊事物的類。如已有的汽車的類,該類中描述了汽車的普遍屬性和行為,進一步再產生轎車的類,轎車的類是繼承于汽車類,轎車類不但擁有汽車類的全部屬性和行為,還增加轎車特有的屬性和行為。
在Java程序設計中,已有的類可以是Java開發環境所提供的一批最基本的程序——類庫。用戶開發的程序類是繼承這些已有的類。這樣,現在類所描述過的屬性及行為,即已定義的變量和方法,在繼承產生的類中完全可以使用。被繼承的類稱為父或超類,而經繼承產生的類稱為子類或派生類。根據繼承機制,派生類繼承了超類的所有成員,并相應地增加了自己的一些新的成員。
若一個子類只允許繼承一個父類,稱為單繼承;若允許繼承多個父類,稱為多繼承。目前許多面向對象程序設計語言不支持多繼承。而Java語言通過接口(interface)的方式來彌補由于Java不支持多繼承而帶來的子類不能享用多個父類的成員的缺憾。
3) 多態性
多態是面向對象程序設計的又一個重要特征。多態是允許程序中出現重名現象。Java語言中含有方法重載與成員覆蓋兩種形式的多態。
方法重載:在一個類中,允許多個方法使用同一個名字,但方法的參數不同,完成的功能也不同。成員覆蓋:子類與父類允許具有相同的變量名稱,但數據類型不同,允許具有相同的方法名稱,但完成的功能不同。
多態的特性使程序的抽象程度和簡捷程度更高,有助于程序設計人員對程序的分組協同開發。
新聞熱點
疑難解答