初學者快速理解Java面向對象思想,首先我們需要知道在理解面向對象時需要知道的幾個名詞:對象,類,還有類中一些成員變量和成員方法,下面我們一一來進行分析:
對象:
對象是人們要進行研究的任何事物,從簡單的一個小分子到復雜的汽車飛機都可以看做對象,只是有時對象要根據(jù)人們研究問題的需要來確定,對象不一定是具體的,有時也可以表示抽象的規(guī)則或計劃。
類:
類在java中是具有相同或相似性質(zhì)的對象的抽象體現(xiàn)形式。也就是說,類的實例化就是創(chuàng)建對象的過程類的實例就是對象。
其實類的創(chuàng)建在一定程度上是符合人的思維的,我想借一個例子來說明這個問題,同時熟悉一下類的大致結構:
我們創(chuàng)建一個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("我要吃飯"); }}
首先我們看一下類結構,有成員變量,成員方法,還有構造方法,對于結構這里就不多講了,有很多同學不明白構造方法是干什么的,其實,構造方法是在實例化對象時執(zhí)行的方法,一個類可以有很多構造方法,根據(jù)你創(chuàng)建對象時參數(shù)的不同來調(diào)用不同的構造方法,這就是所說的重載。
對于People類我們就叫他人類吧,你說人類是個什么,你可以摸的著嗎,其實他就是一個定義,一個抽象的東西,但是當我們在對他實例化時,你就可以知道他是一個具體存在的東西:例如:
People jim = new People(); jim.hit(); jim.eat();
我們實例化出了jim這個人的對象,是真實存在的,具體的,有頭,有胳膊,還有腿等,并且他還可以打人,吃飯。
其實面向對象并不難,很接近我們現(xiàn)實生活的,就是通過我們對自然界的認知,經(jīng)過一點點的轉變,就轉換到編程語言上來了,也就是說,你用自然的思維去理解考慮問題就可以了,但是剛開始我們會不習慣,就像Thinking in java里寫的那樣:“我們可能會被這種簡單性所難倒”你需要一段時間去習慣,開始的時候可以先模仿,寫的多了可能慢慢就會體會到面向對象的奧妙。
理解了上面對面向對象的一些基礎的東西以后,我們來看面向對象的三個特性:封裝、繼承、多態(tài)??此坪唵蔚牧鶄€字,卻是面向對象的核心,下面我們一起來看看這三個特性:
Java封裝:
面向對象最基礎的一個特性,封裝性,封裝是根據(jù)需要,把代碼和指令代碼捆在一起,就像一個保護器,防止外界代碼隨意的訪問,而是根據(jù)該保護器定義的接口來控制,封裝的好處是根據(jù)問題的需要,封裝代碼的好處是每個人都知道怎樣訪問代碼,進而無需考慮實現(xiàn)細節(jié)就能直接使用它,也不用擔心其他的一些副作用。
在JAVA中,最基本的封裝單元是類,一個類定義著將由一組對象所共享的行為(數(shù)據(jù)和代碼).一個類的每個對象均包含它所定義的結構與行為,這些對象就好象是一個模子鑄造出來的.所以對象也叫做類的實例。
在定義一個類時,需要指定構成該類的代碼與數(shù)據(jù).特別是,類所定義的對象叫做成員變量或實例變量.操作數(shù)據(jù)的代碼叫做成員方法.方法定義怎樣使用成員變量,這意味著類的行為和接口要由操作實例數(shù)據(jù)的方法來定義。
由于類的用途是封裝復雜性,所以類的內(nèi)部有隱藏實現(xiàn)復雜性的機制.所以JAVA中提供了私有和公有的訪問模式,類的公有接口代表外部的用戶應該知道或可以知道的每件東西.私有的方法數(shù)據(jù)只能通過該類的成員代碼來訪問.這就可以確保不會發(fā)生不希望的事情。
繼承
繼承是指一個對象從另一個對象中獲得屬性的過程.是面向對象程序設計的三大原則之二,它支持按層次分類的概念.例如,黑種人是人的一種,美國人有時白種人的一種,.如果不使用層次的概念,每個對象需要明確定義各自的全部特征.通過層次分類方式,一個對象只需要在它的類中定義是它成為唯一的各個屬性,然后從父類中繼承它的通用屬性.因此,正是由于繼承機制,才使得一個對象可以成為一個通用類的一個特定實例.一個深度繼承的子類將繼承它在類層次中的每個祖先的所有屬性。
繼承與封裝可以互相作用.如果一個給定的類封裝了某些屬性,它的任何子類將會含有同樣得屬性,另加各個子類所有得屬性.這是面向對象程序在復雜性上呈線性而非幾何增長的一個重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統(tǒng)中的其他代碼不會產(chǎn)生無法預料的交互作用。
Java多態(tài)
多態(tài)是指一個方法只能有一個名稱,但可以有許多形態(tài),也就是程序中可以定義多個同名的方法,用"一個接口,多個方法"來描述.可以通過方法的參數(shù)和類型引用。多態(tài)使得對象間交互更為靈活。
封裝,繼承,多態(tài)的組合使用:
在由封裝,繼承,多態(tài)所組成的環(huán)境中,程序員可以編寫出比面向過程模型更健壯,更具擴展性的程序.經(jīng)過仔細設計的類層次結構是重用代碼的基礎.封裝能讓程序員不必修改公有接口的代碼即可實現(xiàn)程序的移植.多態(tài)能使程序員開發(fā)出簡潔,易懂,易修改的代碼.同樣,通過使用面向對象的設計原則,程序員可以把一個復雜程序的各個構件組合在一起,形成一個一致,健壯,可維護的程序
總的來說,所謂封裝,就是通過定義類并且給類的屬性和方法加上訪問控制來抽象事物的本質(zhì)特性。所謂繼承,就是代碼重用,而多態(tài),從另外一個角度分割了接口和實現(xiàn)。
理解了之后這些之后,想必你對面向對象會有一個新的認識,那么,接下來,可以找個小的程序題,或者生活中的某個應用,來自己設計并實現(xiàn)它吧。
以上就是深圳達內(nèi)教育java培訓機構的小編針對“初學者快速理解Java面向對象思想”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。