天天看點

java特征

java的核心是面向對象,與之相對的是面向過程的程式設計,在對整個java程式設計沒有足夠的了解和運用的情況下恐怕沒辦法很好的了解這兩個概念。

在我的初步了解中,寫一個程式就例如做一件事情,面向過程的思想或許就是指這一步做什麼,下一步又做什麼,直到完成這件事,突出的是做的步驟;而面向對象的思想則是這個人做什麼,那個人做什麼,直到合起來完成這件事;雖然結果都是完成這件事,但是一個着重點是做的步驟,而另一個則是誰做什麼。

所有的面向對象程式設計語言,都包含着三個原則或者說是特征、機制,分别是封裝、繼承和多态。

java中一切皆對象,類是對象,接口是對象,屬性是對象,方法也是對象。而對象是什麼,對象就是object,就是我們通俗所說的東西。什麼是東西?可以說宇宙是個東西,人是個東西,一件事也是個東西,一切皆對象,也就是一切皆東西。

封裝的簡單了解就是把一些零散的卻又有一定關系的東西整合起來作為一個整體來使用,或者這些東西可以稱之為對象。就好比把一輛車當作一個程式,它上邊有非常多的零件,比如塑膠件、五金件等,但是我們通常隻會說方向盤、輪胎,而方向盤并不是最小的個體,他們是由更小的零件組合的,把這些零件組合成方向盤來實作掌控方向的過程就是封裝。

繼承的概念就類似于我們生活中常說的繼承,也就是子類會獲得父類的部分東西,但是卻又不是全部。例如我們可以繼承父親的部分基因進而長的像父親,也可以繼承父親的關系網甚者财産,但是他的兄弟卻不能是我們的兄弟,還是會有所不同。有一點要注意的是,這裡說的是父類而不是說的父親,這是有很大差別,所謂的父類,父親是,爺爺也是,爺爺的爺爺一樣是。

據我了解, 多态的概念通常涉及到接口和實作的問題,也就是說一個接口可以有多種不同的實作形态。一樣可以拿人做個例子,人有身份,而身份是個抽象的東西,是個具有相對性的概念,對于他的朋友來說,他的身份就是朋友,對于他的晚輩來說,他就是個長輩,而對于他的同僚來說,他就是個同僚。這個人是個接口,身份就是抽象方法,其他不同的人就是不同的實作這個借口的方法,具體的身份就是具體的實作狀态。同一個人,不同的身份,這就是多态。

既然多态通常跟接口有關,那麼接口是什麼?接口可以看作是特殊的抽象類,也就是一種所有方法都是抽象方法的抽象類。需要注意的是,抽象類可以有幾種形式,可以沒有抽象方法,可以有一部分抽象方法,也可以全部是抽象方法。可是接口到底是什麼?目前隻能再打個比方,我們通常所說的usb接口,就是一個接口,因為它也有多态,當我們用他來連接配接滑鼠或鍵盤的時候它的功能是一種狀态,當我們用它連接配接資料線傳輸資料時又是一種狀态。

封裝、繼承、多态原本就是一些概念,概念是由人定義的,是以不同的人具體了解可能不一樣,但是大體上是那麼回事就可以了。