更新時(shí)間:2020-07-03 16:02:27 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2444次
初學(xué)者快速理解Java面向?qū)ο笏枷?/strong>,首先我們需要知道在理解面向?qū)ο髸r(shí)需要知道的幾個(gè)名詞:對(duì)象,類,還有類中一些成員變量和成員方法,下面我們一一來進(jìn)行分析:
對(duì)象:
對(duì)象是人們要進(jìn)行研究的任何事物,從簡單的一個(gè)小分子到復(fù)雜的汽車飛機(jī)都可以看做對(duì)象,只是有時(shí)對(duì)象要根據(jù)人們研究問題的需要來確定,對(duì)象不一定是具體的,有時(shí)也可以表示抽象的規(guī)則或計(jì)劃。
類:
類在java中是具有相同或相似性質(zhì)的對(duì)象的抽象體現(xiàn)形式。也就是說,類的實(shí)例化就是創(chuàng)建對(duì)象的過程類的實(shí)例就是對(duì)象。
其實(shí)類的創(chuàng)建在一定程度上是符合人的思維的,我想借一個(gè)例子來說明這個(gè)問題,同時(shí)熟悉一下類的大致結(jié)構(gòu):
我們創(chuàng)建一個(gè)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("我要吃飯"); } }
首先我們看一下類結(jié)構(gòu),有成員變量,成員方法,還有構(gòu)造方法,對(duì)于結(jié)構(gòu)這里就不多講了,有很多同學(xué)不明白構(gòu)造方法是干什么的,其實(shí),構(gòu)造方法是在實(shí)例化對(duì)象時(shí)執(zhí)行的方法,一個(gè)類可以有很多構(gòu)造方法,根據(jù)你創(chuàng)建對(duì)象時(shí)參數(shù)的不同來調(diào)用不同的構(gòu)造方法,這就是所說的重載。
對(duì)于People類我們就叫他人類吧,你說人類是個(gè)什么,你可以摸的著嗎,其實(shí)他就是一個(gè)定義,一個(gè)抽象的東西,但是當(dāng)我們?cè)趯?duì)他實(shí)例化時(shí),你就可以知道他是一個(gè)具體存在的東西:例如:
People jim = new People(); jim.hit(); jim.eat();
我們實(shí)例化出了jim這個(gè)人的對(duì)象,是真實(shí)存在的,具體的,有頭,有胳膊,還有腿等,并且他還可以打人,吃飯。
其實(shí)面向?qū)ο蟛⒉浑y,很接近我們現(xiàn)實(shí)生活的,就是通過我們對(duì)自然界的認(rèn)知,經(jīng)過一點(diǎn)點(diǎn)的轉(zhuǎn)變,就轉(zhuǎn)換到編程語言上來了,也就是說,你用自然的思維去理解考慮問題就可以了,但是剛開始我們會(huì)不習(xí)慣,就像Thinking in java里寫的那樣:“我們可能會(huì)被這種簡單性所難倒”你需要一段時(shí)間去習(xí)慣,開始的時(shí)候可以先模仿,寫的多了可能慢慢就會(huì)體會(huì)到面向?qū)ο蟮膴W妙。
理解了上面對(duì)面向?qū)ο蟮囊恍┗A(chǔ)的東西以后,我們來看面向?qū)ο蟮娜齻€(gè)特性:封裝、繼承、多態(tài)。看似簡單的六個(gè)字,卻是面向?qū)ο蟮暮诵模旅嫖覀円黄饋砜纯催@三個(gè)特性:
面向?qū)ο笞罨A(chǔ)的一個(gè)特性,封裝性,封裝是根據(jù)需要,把代碼和指令代碼捆在一起,就像一個(gè)保護(hù)器,防止外界代碼隨意的訪問,而是根據(jù)該保護(hù)器定義的接口來控制,封裝的好處是根據(jù)問題的需要,封裝代碼的好處是每個(gè)人都知道怎樣訪問代碼,進(jìn)而無需考慮實(shí)現(xiàn)細(xì)節(jié)就能直接使用它,也不用擔(dān)心其他的一些副作用。
在JAVA中,最基本的封裝單元是類,一個(gè)類定義著將由一組對(duì)象所共享的行為(數(shù)據(jù)和代碼).一個(gè)類的每個(gè)對(duì)象均包含它所定義的結(jié)構(gòu)與行為,這些對(duì)象就好象是一個(gè)模子鑄造出來的.所以對(duì)象也叫做類的實(shí)例。
在定義一個(gè)類時(shí),需要指定構(gòu)成該類的代碼與數(shù)據(jù).特別是,類所定義的對(duì)象叫做成員變量或?qū)嵗兞?操作數(shù)據(jù)的代碼叫做成員方法.方法定義怎樣使用成員變量,這意味著類的行為和接口要由操作實(shí)例數(shù)據(jù)的方法來定義。
由于類的用途是封裝復(fù)雜性,所以類的內(nèi)部有隱藏實(shí)現(xiàn)復(fù)雜性的機(jī)制.所以JAVA中提供了私有和公有的訪問模式,類的公有接口代表外部的用戶應(yīng)該知道或可以知道的每件東西.私有的方法數(shù)據(jù)只能通過該類的成員代碼來訪問.這就可以確保不會(huì)發(fā)生不希望的事情。
繼承
繼承是指一個(gè)對(duì)象從另一個(gè)對(duì)象中獲得屬性的過程.是面向?qū)ο蟪绦蛟O(shè)計(jì)的三大原則之二,它支持按層次分類的概念.例如,黑種人是人的一種,美國人有時(shí)白種人的一種,.如果不使用層次的概念,每個(gè)對(duì)象需要明確定義各自的全部特征.通過層次分類方式,一個(gè)對(duì)象只需要在它的類中定義是它成為唯一的各個(gè)屬性,然后從父類中繼承它的通用屬性.因此,正是由于繼承機(jī)制,才使得一個(gè)對(duì)象可以成為一個(gè)通用類的一個(gè)特定實(shí)例.一個(gè)深度繼承的子類將繼承它在類層次中的每個(gè)祖先的所有屬性。
繼承與封裝可以互相作用.如果一個(gè)給定的類封裝了某些屬性,它的任何子類將會(huì)含有同樣得屬性,另加各個(gè)子類所有得屬性.這是面向?qū)ο蟪绦蛟趶?fù)雜性上呈線性而非幾何增長的一個(gè)重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統(tǒng)中的其他代碼不會(huì)產(chǎn)生無法預(yù)料的交互作用。
多態(tài)是指一個(gè)方法只能有一個(gè)名稱,但可以有許多形態(tài),也就是程序中可以定義多個(gè)同名的方法,用"一個(gè)接口,多個(gè)方法"來描述.可以通過方法的參數(shù)和類型引用。多態(tài)使得對(duì)象間交互更為靈活。
封裝,繼承,多態(tài)的組合使用:
在由封裝,繼承,多態(tài)所組成的環(huán)境中,程序員可以編寫出比面向過程模型更健壯,更具擴(kuò)展性的程序.經(jīng)過仔細(xì)設(shè)計(jì)的類層次結(jié)構(gòu)是重用代碼的基礎(chǔ).封裝能讓程序員不必修改公有接口的代碼即可實(shí)現(xiàn)程序的移植.多態(tài)能使程序員開發(fā)出簡潔,易懂,易修改的代碼.同樣,通過使用面向?qū)ο蟮脑O(shè)計(jì)原則,程序員可以把一個(gè)復(fù)雜程序的各個(gè)構(gòu)件組合在一起,形成一個(gè)一致,健壯,可維護(hù)的程序
總的來說,所謂封裝,就是通過定義類并且給類的屬性和方法加上訪問控制來抽象事物的本質(zhì)特性。所謂繼承,就是代碼重用,而多態(tài),從另外一個(gè)角度分割了接口和實(shí)現(xiàn)。
理解了之后這些之后,想必你對(duì)面向?qū)ο髸?huì)有一個(gè)新的認(rèn)識(shí),那么,接下來,可以找個(gè)小的程序題,或者生活中的某個(gè)應(yīng)用,來自己設(shè)計(jì)并實(shí)現(xiàn)它吧。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“初學(xué)者快速理解Java面向?qū)ο笏枷搿钡膬?nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743