JAVA基礎(面向對象的理解:什麼是面向對象)

 

 

 

       面向對象是一種思想,是基於面向過程而言的,就是說面向對象是將功能等經過對象來實現,將功能封裝進對象之中,讓對象去實現具體的細節;這種思想是將數據做爲第一位,而方法或者說是算法做爲其次,這是對數據一種優化,操做起來更加的方便,簡化了過程。面向對象有三大特徵:封裝性、繼承性、多態性,其中封裝性指的是隱藏了對象的屬性和實現細節,僅對外提供公共的訪問方式,這樣就隔離了具體的變化,便於使用,提升了複用性和安全性。對於繼承性,就是兩種事物間存在着必定的所屬關係,那麼繼承的類就能夠從被繼承的類中得到一些屬性和方法;這就提升了代碼的複用性。繼承是做爲多態的前提的。多態是說父類或接口的引用指向了子類對象,這就提升了程序的擴展性,也就是說只要實現或繼承了同一個接口或類,那麼就可使用父類中相應的方法,提升程序擴展性,可是多態有一點很差之處在於:父類引用不能訪問子類中的成員。html

       舉例來講:就是:好比說你要去飯店吃飯,你只須要飯店,找到飯店的服務員,跟她說你要吃什麼,而後就會給你作出來讓你吃,你並不須要知道這個飯是怎麼錯作的,你只須要面向這個服務員,告訴他你要吃什麼,而後他也只須要面向你吃完收到錢就好,不須要知道你怎麼對這個飯進行吃算法

一、特色:編程

1:將複雜的事情簡單化。安全

2:面向對象將之前的過程當中的執行者,變成了指揮者。框架

3:面向對象這種思想是符合如今人們思考習慣的一種思想。編程語言

二、面向對象的三大特徵:封裝,繼承、多態函數

1.封裝:只隱藏對象的屬性和實現細節,僅對外提供公共訪問方式優化

好處:將變化隔離、便於使用、提升複用性、提升安全性this

原則:將不須要對外提供的內容隱藏起來;把屬性隱藏,提供公共方法對其訪問spa

2.繼承:提升代碼複用性;繼承是多態的前提

注:

①子類中全部的構造函數都會默認訪問父類中的空參數的構造函數,默認第一行有super();若無空參數構造函數,子類中需指定;另外,子類構造函數中可本身用this指定自身的其餘構造函數。

3.多態

是父類或接口定義的引用變量能夠指向子類或具體實現類的實例對象

好處:提升了程序的擴展性

弊端:當父類引用指向子類對象時,雖提升了擴展性,但只能訪問父類中具有的方法,不可訪問子類中的方法;即訪問的侷限性。

前提:實現或繼承關係;覆寫父類方法。

 

 

 

面向對象的總結:

面向對象實際上是現實世界模型的天然延伸。現實世界中任何實體均可以看做是對象。對象之間經過消息相互做用。另外,現實世界中任何實體均可歸屬於某類事物,任何對象都是某一類事物的實例。若是說傳統的面向過程式編程語言是以過程爲中心以算法爲驅動的話,面向對象的編程語言則是以對象爲中心以消息爲驅動。用公式表示,過程式編程語言爲:程序=算法+數據;面向對象編程語言爲:程序=對象+消息。 


全部面向對象編程語言都支持三個概念:封裝、多態性和繼承,Java也不例外。現實世界中的對象均有屬性和行爲,映射到計算機程序上,屬性則表示對象的數據,行爲表示對象的方法(其做用是處理數據或同外界交互)。所謂封裝,就是用一個自主式框架把對象的數據和方法聯在一塊兒造成一個總體。能夠說,對象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強,由於Java無全局變量,無主函數,在Java中絕大部分紅員是對象,只有簡單的數字類型、字符類型和布爾類型除外。而對於這些類型,Java也提供了相應的對象類型以便與其餘對象交互操做。

多態性就是多種表現形式,具體來講,能夠用"一個對外接口,多個內在實現方法"表示。舉一個例子,計算機中的堆棧能夠存儲各類格式的數據,包括整型,浮點或字符。無論存儲的是何種數據,堆棧的算法實現是同樣的。針對不一樣的數據類型,編程人員沒必要手工選擇,只需使用統一接口名,系統可自動選擇。運算符重載(operator overload)一直被認爲是一種優秀的多態機制體現,但因爲考慮到它會使程序變得難以理解,因此Java最後仍是把它取消了。

繼承是指一個對象直接使用另外一對象的屬性和方法。事實上,咱們遇到的不少實體都有繼承的含義。例如,若把
當作一個實體,它能夠分紅多個子實體,如:卡車、公共汽車等。這些子實體都具備汽車的特性,所以,汽車是它們的"父親",而這些子實體則是汽車的"孩子"。Java提供給用戶一系列類(class),Java的類有層次結構,子類能夠繼承父類的屬性和方法。與另一些面向對象編程語言不一樣,Java只支持單一繼承。
相關文章
相關標籤/搜索