首頁>技術>

初學者快速理解Java面向物件思想,首先我們需要知道在理解面向物件時需要知道的幾個名詞:物件,類,還有類中一些成員變數和成員方法,下面我們一一來進行分析:

物件:

物件是人們要進行研究的任何事物,從簡單的一個小分子到複雜的汽車飛機都可以看做物件,只是有時物件要根據人們研究問題的需要來確定,物件不一定是具體的,有時也可以表示抽象的規則或計劃。

類:

類在java中是具有相同或相似性質的物件的抽象體現形式。也就是說,類的例項化就是建立物件的過程類的例項就是物件。

其實類的建立在一定程度上是符合人的思維的,我想借一個例子來說明這個問題,同時熟悉一下類的大致結構:

我們建立一個People類:

package com.guang.email;public class People {	private String head;	private String arms;	private String legs;	   public People() { 	      }	public void hit(){		System.out.println("hit you");	}    public void eat(){    	System.out.println("我要吃飯");    }}

首先我們看一下類結構,有成員變數,成員方法,還有構造方法,對於結構這裡就不多講了,有很多同學不明白構造方法是幹什麼的,其實,構造方法是在例項化物件時執行的方法,一個類可以有很多構造方法,根據你建立物件時引數的不同來呼叫不同的構造方法,這就是所說的過載。

對於People類我們就叫他人類吧,你說人類是個什麼,你可以摸的著嗎,其實他就是一個定義,一個抽象的東西,但是當我們在對他例項化時,你就可以知道他是一個具體存在的東西:例如:

People jim = new People();    jim.hit();    jim.eat();

我們例項化出了jim這個人的物件,是真實存在的,具體的,有頭,有胳膊,還有腿等,並且他還可以打人,吃飯。

其實面向物件並不難,很接近我們現實生活的,就是透過我們對自然界的認知,經過一點點的轉變,就轉換到程式語言上來了,也就是說,你用自然的思維去理解考慮問題就可以了,但是剛開始我們會不習慣,就像Thinking in java裡寫的那樣:“我們可能會被這種簡單性所難倒”你需要一段時間去習慣,開始的時候可以先模仿,寫的多了可能慢慢就會體會到面向物件的奧妙。

理解了上面對面向物件的一些基礎的東西以後,我們來看面向物件的三個特性:封裝、繼承、多型。看似簡單的六個字,卻是面向物件的核心,下面我們一起來看看這三個特性:

Java封裝

面向物件最基礎的一個特性,封裝性,封裝是根據需要,把程式碼和指令程式碼捆在一起,就像一個保護器,防止外界程式碼隨意的訪問,而是根據該保護器定義的介面來控制,封裝的好處是根據問題的需要,封裝程式碼的好處是每個人都知道怎樣訪問程式碼,進而無需考慮實現細節就能直接使用它,也不用擔心其他的一些副作用。

在JAVA中,最基本的封裝單元是類,一個類定義著將由一組物件所共享的行為(資料和程式碼).一個類的每個物件均包含它所定義的結構與行為,這些物件就好象是一個模子鑄造出來的.所以物件也叫做類的例項。

在定義一個類時,需要指定構成該類的程式碼與資料.特別是,類所定義的物件叫做成員變數或例項變數.操作資料的程式碼叫做成員方法.方法定義怎樣使用成員變數,這意味著類的行為和介面要由操作例項資料的方法來定義。

由於類的用途是封裝複雜性,所以類的內部有隱藏實現複雜性的機制.所以JAVA中提供了私有和公有的訪問模式,類的公有介面代表外部的使用者應該知道或可以知道的每件東西.私有的方法資料只能透過該類的成員程式碼來訪問.這就可以確保不會發生不希望的事情。

繼承

繼承是指一個物件從另一個物件中獲得屬性的過程.是面向物件程式設計的三大原則之二,它支援按層次分類的概念.例如,黑種人是人的一種,美國人有時白種人的一種,.如果不使用層次的概念,每個物件需要明確定義各自的全部特徵.透過層次分類方式,一個物件只需要在它的類中定義是它成為唯一的各個屬性,然後從父類中繼承它的通用屬性.因此,正是由於繼承機制,才使得一個物件可以成為一個通用類的一個特定例項.一個深度繼承的子類將繼承它在類層次中的每個祖先的所有屬性。

繼承與封裝可以互相作用.如果一個給定的類封裝了某些屬性,它的任何子類將會含有同樣得屬性,另加各個子類所有得屬性.這是面向物件程式在複雜性上呈線性而非幾何增長的一個重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統中的其他程式碼不會產生無法預料的互動作用。

Java多型

多型是指一個方法只能有一個名稱,但可以有許多形態,也就是程式中可以定義多個同名的方法,用"一個介面,多個方法"來描述.可以透過方法的引數和型別引用。多型使得物件間互動更為靈活。

封裝,繼承,多型的組合使用:

在由封裝,繼承,多型所組成的環境中,程式設計師可以編寫出比面向過程模型更健壯,更具擴充套件性的程式.經過仔細設計的類層次結構是重用程式碼的基礎.封裝能讓程式設計師不必修改公有介面的程式碼即可實現程式的移植.多型能使程式設計師開發出簡潔,易懂,易修改的程式碼.同樣,透過使用面向物件的設計原則,程式設計師可以把一個複雜程式的各個構件組合在一起,形成一個一致,健壯,可維護的程式

總的來說,所謂封裝,就是透過定義類並且給類的屬性和方法加上訪問控制來抽象事物的本質特性。所謂繼承,就是程式碼重用,而多型,從另外一個角度分割了介面和實現。

理解了之後這些之後,想必你對面向物件會有一個新的認識,那麼,接下來,可以找個小的程式題,或者生活中的某個應用,來自己設計並實現它吧。

16
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • MySQL中的函式索引