Java基礎——對象和類1(物件導向基本概念)__Java

來源:互聯網
上載者:User
Java基礎——對象和類1(物件導向基本概念)

一、編程思想

編程思想:需求——>建立思路——>目標代碼

面向過程的思想:自頂向下,逐步求精

不適合用來解決一些比較複雜的問題

物件導向的思想

二、對象的基本概念

1,對象:無論什麼都是對象,一切客觀存在的事物

2,屬性:有什麼

3,方法:能做什麼

例如,對於一個汽車對象,這個對象有顏色、品牌、價格、 最高時速等屬性,有啟動、加速、轉向、刹車等方法。

 

對象不是孤立存在的,對象與對象之間會通過某種方式產生聯絡。

一種方式是方法調用的關係。一個對象可以調用另一個對象的方法,從而在這兩個對象中產生關聯。即對象的方法使用者又是一個對象。例如,學生對象,可以調用老師對象的“講課”方法,司機對象可以調用汽車 對象的“行駛”方法,顧客對象可以調用廚師的“做飯”方法,等等。任何一個對象都可能 調用其他對象的方法,也可能提供方法供其他對象調用。

另一種方式是屬性群組合的方式:一個對象的屬性,可能又是一個對象。例如,把主機、 鍵盤、滑鼠等等小對象,皆可看作是電腦這個大對象的屬性;以若干個學生對象作為屬性, 組成了班級對象;若干個書本對象,組成圖書館對象等等。

通過這兩種連絡方式,我們可以把一些功能相對簡單的對象組織在一起,形成複雜的系統。


客觀的世界是由對象組成的

1,小對象組成大對象

2,對象間彼此方法調用

 

例如,現實生活中,企業這個對象,往往是一個非常複雜的系統。然而,企業中每一個對象,每一個員工,要解決的問題總是相對簡單的。例如,在一個軟體企業中,程式員要解 決的問題就是編程,會計解決的問題就是算賬,銷售解決的問題就是獲得訂單,等等。但是, 雖然每個員工要解決的問題都相對簡單,但是當大量功能簡單的對象組合在一起之後,就能 形成一個非常複雜的企業系統。

解決客觀問題:物件導向的思想

1,把解決問題所需的對象準備好

2,對象如何配合完成需求

例如,假設我們要從北京出發到上海。為了完成這個任務,首先要做的,是應當確定,用什 麼方式去上海,是坐飛機。坐火車。還是自己開車。等等。

這是一個選擇交通工具的過程,也就是我們在選擇合適的對象來解決問題的過程。在這 個例子中,我們希望能夠選擇一個對象,這個對象能有一個“交通運輸”的方法。很顯然, 汽車、火車、飛機,都存在這個“交通運輸”方法。我們可以根據實際的情況,來選擇不同 的交通工具,並調用其“交通運輸”方法,從而完成從北京到上海這個目標。如果我們選擇 了“飛機”對象,那麼就需要調用“機票代理人”對象的“賣機票”方法,來獲得一個“機 票”對象。再調用“出租車”對象的“開車”方法,到達機場。利用手中的機票,調用“飛 機”對象的“登機”方法,“飛行”方法。從而到達目的地。

三、電腦中的對象

電腦需求來源於客觀世界

解決電腦問題,同樣可以採用物件導向的思想

 

設計電子商務網站,這是一個電腦領域的問題。但是,我們可以看到,這個問題的提出,是與現實世界緊密聯絡的。也就是說,電腦編程要解決的問題,一定來自於現實生活。例如,軟體行業中有 word 軟體,是為瞭解決人們處理文檔的問題;有 excel 軟體,是為瞭解決人們統計資料以及做報表的需求;有QQ 軟體,是為瞭解決人們交流和溝通的需求„„ 等等。

  既然電腦世界的問題都來源於現實世界,那最好的辦法,就應當是讓電腦來類比現 實世界。由於現實世界是一個物件導向的世界,因此,很自然的,我們就希望在電腦世界中,也引入物件導向的思想,這樣,程式員就可以利用現實生活中的經驗,更好的解決電腦的問題。

 

電腦中的對象

1,JVM中連續的儲存空間(資料)

2,代表生活中的對象,生活中的對象在電腦中的抽象

通過抽象,我們就把現實中的對象,變成了電腦中的對象。 例如,我們對現實生活中的學生對象進行抽象,形成了電腦中的學生對象。抽象的時 候,保留了學生對象的這樣幾個屬性:姓名、年齡和學產生績。因此,對於一個電腦中的 學生對象而言,實際上就是在記憶體中的一塊資料區域。這塊地區中,有一個字串,用來表 示姓名,有一個整數用來表示年齡,有一個 double 類型的數,用來表示學生的成績。在內 存中的表示如下:

 

 

 

 

在記憶體中,我們分配出了一塊資料區域,在這塊地區中,包含了抽象出的學生對象的屬 性。這些資料作為整體出現,代表生活中的學生對象。因此,從本質上說,電腦中的對象, 就是在記憶體中的一塊資料區域。

通過把現實生活中的對象抽象成電腦中的對象,我們就可以在電腦世界中類比出跟 現實世界中一樣的物件導向的世界。這樣,我們在進行編程的時候,就可以利用這種思想來解決問題。

 

四、物件導向的特點

1,各司其職

利用物件導向的思想,完成一個需求,可能會由多個對象共同參與。而組成系統的每個 6 對象,其功能應該單一。這就是對象的“各司其職”。

2,弱耦合性

弱耦合性指的是,讓對象和對象之間的聯絡儘可能的弱。這樣有什麼優點呢。如果一個 對象跟周圍的聯絡比較弱,那麼這個對象就可以很容易的被替換。

3,可重用性

所謂的可重用性,指的是對於類似的功能,不同的系統可以重複使用相同的代碼。這樣, 有些通用的功能,程式員寫了一遍之後,在遇到類似的功能之後,不需要從頭開始開發,只 需要對這些通用的功能進行使用就可以了。

4,可擴充性

可擴充性指的是,在不修改原有系統的前提下,對系統的功能進行擴充。在面向過程的 編程方式中,如果要增加系統的功能,則大部分的過程就都必須要改變。

 

五、類的概念

1,對象共性的抽象

例如,現實生活中,存在許許多多的狗“對象”(小白、大黃、旺財、來福„„)。對於 一個不認識“狗”的嬰兒來說,當他見到越來越多的狗對象之後,慢慢的就能逐漸總結出, 這一類對象的特點:四條腿,會吃會跑會叫,會搖尾巴„„於是,慢慢的,他就認識了狗。 也就是說,在他的腦子中,形成了“狗”這個概念,狗這個“類”就包含在他的腦子中了。 也就是說,當人面對大量的對象之後,慢慢的會把對象的共性進行抽象,從而形成了 “類”。換句話說,類是對客觀事物的總結和抽象。

2,客觀對象在人腦中的主觀反映,類是人對對象的認識

與此同時,我們注意到,“類”是在人的腦子中形成的一個概念,也就是說,類是在人 腦子裡的,而不是一種客觀事物。我們可以認為,類就是客觀事物在人腦中的反映。

3,類是對象的模板

而在電腦世界中,有另外一層含義:類能夠作為建立對象的模板。也就是說,在計算 機中,如果定義了一個類,則可以利用這個類建立多個對象。

 

 


如上圖所示,我們定義了一個 Student 類,規定了 Student 對象具有兩個屬性,String 類 型的姓名和 int 類型的年齡。之後建立四個對象,很顯然,這些對象都是以 Student 類作為 模板建立起來的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.