重生之__面向對象

Day5

面向對象乃是Java語言的核心,是程序設計的思想。Java語言的面向對象技術包括了面向對象和麪向過程的基本概念,面向對象的特徵,Java語言的類,對象,修飾符,抽象類等一系列的知識點

首先讓我們來了解一下什麼是對象?
沒錯!要了解面向對象我們肯定需要先知道對象到底是什麼玩意兒。關於對象的理解很簡單,在我們的身邊,每一種事物的存在都是一種對象。總結爲一句話也就是:對象就是事物存在的實體。下面舉個簡單的例子,比如人類就是一個對象,然而對象是有屬性和方法的,那麼身高,體重,年齡,姓名,性別這些是每個人都有的特徵可以概括爲屬性,當然了我們還會思考,學習,這些行爲相當於對象的方法。不過,不同的對象有不同的行爲

面向對象的特徵

封裝:就是把屬性私有化,提供公共方法訪問私有對象。舉個簡單的例子,我們去Apple店裏買個iPhoneX,我們不需要知道它是怎麼製造的,我們只需要知道它能用來打電話,上網和用來裝B就行了。對於程序設計,用戶只需要知道類中某個方法實現了什麼樣的功能,需要該功能的時候直接去調用就行了,不用去關心方法內部的實現細節

繼承:當多個類具有相同的特徵(屬性)和行爲(方法)時,可以將相同的部分抽取出來放到一個類中作爲父類,其它類繼承這個父類。繼承後子 類自動擁有了父類的屬性和方法,比如貓,狗,熊貓他們共同的特徵都是動物,有顏色,會跑,會叫等特徵。我們可以把這些特徵抽象成我一個Animal類(也就是父類)。然而他們也有自己獨特的特性,比如貓會抓老鼠,喵喵叫,熊貓有黑眼圈,能吃竹子,狗會汪汪。於是我們就根據這些獨特的特徵分別抽象出來Cat,Dog,Panda類等。他們擁有Animal類的一般屬性和方法,也擁有自己特有的某些屬性和方法。

但特別注意的是,父類的私有屬性(private)和構造方法不能被繼承。另外子類可以寫自己特有的屬性和方法,目 的 是實現功能的擴展,子類也可以複寫父類的方法,即方法的重寫。子類不能繼承父類中訪問權限private的成員變量和方法

多態:簡單來說就是“一種定義,多種實現”。同一類事物表現出多種形態。Java語言中有方法重載和對象多態兩種形式的多態
方法重載:在一個類中,允許多個方法使用同一個名字,但是方法的參數不同,完成的功能也不同
對象多態:子類對象可以與父類對象進行相互轉換,而且根據其使用的子類的不同,完成的功能也不同

抽象:抽象是從許多事物中,捨棄個表的,非本質的屬性,抽取出共同的,本質的屬性的過程。例如教師,學生和工人,他們共同的特質是人類,既然是人類就有共同的屬性:性別,年齡,身高,體重等。抽象的過程就是比較的過程,通過比較找出事物之間的共同屬性,通過比較區分本質。

類與對象的關係
所有的事物都可以看做是一個對象,是對象就具有一定的屬性和功能,這些對象是可以建立起聯繫的,而且這些對象是由類來構造的。類是具有屬性和方法的一組對象的集合,對象是實際存在的該類事物的個體

在面向對象中,類和對象是最基本和最重要的組成單元。類實際上是表示一個客觀世界某類羣體的一些基本特徵抽象,對象就表示一個個具體的東西,對象是以類模板創建的。

舉個簡單的例子:蘭博基尼跑車,在工廠裏首先要由設計師設計出一個汽車圖紙,然後再根據圖紙去生產蘭博基尼,這樣生產出來的每一輛跑車結構和功能都是一樣的。但是不同的款式有不同的特徵,比如車的顏色,內部裝飾,馬力等。在這個例子中,設計圖紙就是一個類,它規定看跑車應該擁有的基本部件。而根據這張圖紙生產出來的每一輛跑車就是一個個實時存在的對象。它們的初始狀態是一模一樣的,如果其中某一輛顏色,發動機重新改了之後並不影響其他的跑車。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章