面向?qū)ο缶幊?最容易理解的解釋_第1頁
面向?qū)ο缶幊?最容易理解的解釋_第2頁
面向?qū)ο缶幊?最容易理解的解釋_第3頁
面向?qū)ο缶幊?最容易理解的解釋_第4頁
面向?qū)ο缶幊?最容易理解的解釋_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 技術(shù)是日新月異的,他不會等待你的成長。技術(shù)要拿出來于別人交流,自己學(xué)是自己主觀意識上的理解,有對有錯!交流會讓進步變得更快。我認(rèn)為如果計算機 的體系結(jié)構(gòu)不發(fā)生革命性的變化,我們現(xiàn)在所應(yīng)用的程序語言也就百變不離奇蹤了!學(xué)編程學(xué)的是什么?思想!精通一門編程語言(最好是面向?qū)ο蟮恼Z言)后再去 搞其他的編程語言,你會發(fā)現(xiàn)過程是如此的行云流水!為什么?你已經(jīng)把編程的思想掌握了,再去學(xué)其他的,無非是學(xué)習(xí)一種新的語法格式了。 我在這里并不是和你討論怎么去用C+或JAVA,也不是和你討論怎么去學(xué)他們,我要和你討論的是怎么去理解面向?qū)ο蟆F渲兄饕獣婕暗健邦?、對象?繼承、屬性、方法、靜態(tài)、重載、隱藏、重構(gòu)、

2、聲明、定義、初始化、賦值等”其中有許多相關(guān)技術(shù)我只會一代而過,讓你有一種到此一游的意味我就達到目的了, 而更詳細的技術(shù)內(nèi)幕,就請參考其他相關(guān)書籍而深入研究吧!因為我只是在和你探討如何去更好的理解面向?qū)ο螅?如何去提高效率?重復(fù)使用資源,把別人的東西拿來就用。這是很不錯的主意!而對于你來說,最大的資源就是信心以及積極性!好,打起精神來,讓我們一同到面向?qū)ο蟮木幊讨腥び脑L勝吧! 注:文章中所有程序?qū)嵗叶际褂肑AVA寫的,當(dāng)然在C+中也就大同小異了了,不同的地方我會指出! 注:文章中的正文文字用黑色,說明文字用藍色,強調(diào)文字用橙色,批改文字用紅色!正文:1基本概念:1.1 類與對象的初探 要我說

3、,無論是面向過程的語言也好,面向?qū)ο蟮恼Z言也罷,我首先要給他講的都是類和對象!-“這個世界是由什么組成的?”這個問題如果 讓不同的人來回答會得到不同的答案。如果是一個化學(xué)家,他也許會告訴你“還用問嘛?這個世界是由分子、原子、離子等等的化學(xué)物質(zhì)組成的”。如果是一個畫家 呢?他也許會告訴你,“這個世界是由不同的顏色所組成的”。呵呵,眾說紛紜吧!但如果讓一個分類學(xué)家來考慮問題就有趣的多了,他會告訴你“這個世界是 由不同類型的物與事所構(gòu)成的”好!作為面向?qū)ο蟮某绦騿T來說,我們要站在分類學(xué)家的角度去考慮問題!是的,這個世界是由動物、植物等組成的。動物又分為單 細胞動物、多細胞動物、哺乳動物等等,哺乳動物

4、又分為人、大象、老虎就這樣的分下去了! 現(xiàn)在,站在抽象的角度,我們給“類”下個定義吧!我的意思是,站在抽象的角度,你回答我“什么是人類?”首先讓我們來看看人類所具有的一些特征,這個 特征包括屬性(一些參數(shù),數(shù)值)以及方法(一些行為,他能干什么?。?。每個人都有身高、體重、年齡、血型等等一些屬性。人會勞動、人都會直立行走、人都會 用自己的頭腦去創(chuàng)造工具等等這些方法!人之所以能區(qū)別于其它類型的動物,是因為每個人都具有人這個群體的屬性與方法?!叭祟悺敝皇且粋€抽象的概念,它僅僅 是一個概念,它是不存在的實體!但是所有具備“人類”這個群體的屬性與方法的對象都叫人!這個對象“人”是實際存在的實體!每個人都是

5、人這個群體的一個對 象。老虎為什么不是人?因為它不具備人這個群體的屬性與方法,老虎不會直立行走,不會使用工具等等!所以說老虎不是人! 由此可見-類描述了一組有相同特性(屬性)和相同行為(方法)的對象。在程序中,類實際上就是數(shù)據(jù)類型!例如:整數(shù),小數(shù)等等。整數(shù)也有 一組特性和行為。面向過程的語言與面相對象的語言的區(qū)別就在于,面向過程的語言不允許程序員自己定義數(shù)據(jù)類型,而只能使用程序中內(nèi)置的數(shù)據(jù)類型!而為了模 擬真實世界,為了更好的解決問題,往往我們需要創(chuàng)建解決問題所必需的數(shù)據(jù)類型!面向?qū)ο缶幊虨槲覀兲峁┝私鉀Q方案。1.2 內(nèi)置數(shù)據(jù)類型與函數(shù): 計算機程序在存儲數(shù)據(jù)時必須跟蹤3個基本屬性為: 1

6、信息存儲在何處; 2 存儲的值是多少; 3 存儲的信息是什么類型的; 讓我們來看看編程語言的內(nèi)置數(shù)據(jù)類型都有哪些?。ê呛?,這個不大好說,因為每門語言都有自己獨特的數(shù)據(jù)類型,但這畢竟是少數(shù),比如在JAVA中有 byte類型的數(shù)據(jù),而在C+中就沒有,希望你能舉一反三?。┍热缯麛?shù)”int ”,浮點類型的數(shù)據(jù)”float”!字符串”String”,以及數(shù)組還有結(jié)構(gòu)體等等。然而在寫程序的時候,根據(jù)需要我們會創(chuàng)建一個類型的變量或常量,例 如:由于我們需要創(chuàng)建一個整形的變量i為5,我們就可以這樣做,int i = 5;而根據(jù)需要我很有可能改變i的值,也就是從新給它賦值,比如讓它等與6,就可以在所需的地方改成

7、i = 6;由此我們知道,在“值”上可以發(fā)生變化的量就叫變量。不會發(fā)生變化的量就叫做常量了,在C+中用count關(guān)鍵字來聲明,而在JAVA中則使用 final關(guān)鍵字來聲明。由于不同語言的聲明格式不一樣,這里就不做一一介紹了,詳細的內(nèi)容清查閱相關(guān)書籍! 在這里我們主要討論一下函數(shù),我們可以把函數(shù)想象成一個“實現(xiàn)某種特定功能的黑匣子”-這個功能是由你來設(shè)定的,舉個例子來說:現(xiàn)在我問 你“2+3等于多少”?我相信你能很快的回答我等于5。讓我們來分析分析這句話包含什么信息!首先我要把你的大腦想象成是一個黑匣子,我并不知道也沒有必 要知道你的大腦是如何工作的(也就是怎么運算的),我關(guān)心的只是我傳給你的是

8、什么信息?你對信息做了哪些處理? 以及你返回給我的是什么信息?需要提醒你一下的是每個方法都會返回一個信息給調(diào)用者的,除了構(gòu)造函數(shù)外(稍候我會作詳細的介紹)。我現(xiàn)在需要把自己當(dāng)作是 一名程序員,而你呢?當(dāng)然就是計算機了!計算即可沒有人那么聰明,它只會按事先約好的特定的格式運行,我想讓它具有如上所述的功能,我就要先定義這個黑匣 子!首先我要告訴這個黑匣子會有兩個整數(shù)值給你(這就是所謂的參數(shù),是程序員需要給黑匣子的信息),然后就要定義這個黑匣子內(nèi)部實現(xiàn)這兩個整數(shù)相加的運算 (這就是黑匣子對數(shù)據(jù)所做的加工,根據(jù)需要,你可以做任何的加工。)。最后再標(biāo)注它返回給我一個同樣是整型的數(shù)值(這是黑匣子返回給程序

9、員的信息)。一個 函數(shù)就這樣定義完了,讓我們來看看書寫格式:int addnum(int x,int y)return x+y;具體的含義是這樣的:int /*返回值類型*/ addnum /*方法(黑匣子)名稱*/ (int x,int y/*傳入的參數(shù)*/)return x+y; /*內(nèi)部是想方法(實現(xiàn)相加運算,)并用return返回給調(diào)用者結(jié)果*/首先請注意上明的“return”語句!return 關(guān)鍵字的含義是向調(diào)用者返回緊跟在它后面的信息!就像上面一樣,因為我問你,你才會回答我,如果我不問你,你就不用回答我的!在計算機中也一樣,定義好這 個函數(shù)在哪里調(diào)用呢?我只能告訴你,哪里需要就在

10、哪里調(diào)用!當(dāng)然,你可以根據(jù)需要去更改參數(shù)、返回值以及內(nèi)部實現(xiàn),具體到如何定義如何調(diào)用你只好去參考相 關(guān)的資料了!在這里我只是給你一個思想! 有時你會遇到這樣的問題,我讓你記住,我的年齡是20歲!從字面上理解,你并沒有給我返回信息!然而事實上,你確實給我返回了信息,信息的內(nèi)容是“無信息,也就是無返回值類型void”。具體的程序如下:int myAge = 0;int a=20;void remAge(int a)myAge=a;具體的函數(shù)說明如下:int myAge =0; /定義并初始化我的年齡為0;int a=20; /*定義變量a等于20*/void /*返回值類型為無返回值類型*/ re

11、mAge /*函數(shù)名稱*/(int a /*傳入的參數(shù)*/)myAge=a; /內(nèi)部實現(xiàn)方法,注意,沒有return返回! 關(guān)于函數(shù)的話題還有很多很多,這里就不一一介紹了,我的目的是讓你知道函數(shù)是怎么一會事兒!為下面的討論作鋪墊!1.3 指針以及引用: 指針及引用是在C+中有的,JAVA中沒有。JAVA中取消了對內(nèi)存的操作,隨之而來的事也取消了操作符重載的操作。不過在稍候我還是會介紹一些操 作符重載的功能等。引用主要還是用在函數(shù)參數(shù)的傳遞上。所以我在這里就不做過多的介紹了。他們很實用,有興趣的同學(xué)可以參閱C+相關(guān)書籍。1.4 運算符及控制語句: 還是自己看看相關(guān)書籍吧,這里就不再熬述了!2深入

12、探討面向?qū)ο螅?.1“類型”的內(nèi)部細節(jié): 有了上面的知識,我們現(xiàn)在就可以深入的挖掘類的內(nèi)部實現(xiàn)了。所有的知識點我都會圍繞著類與對象展開,在此之前,我希望你能夠確信對以上所介紹的基本內(nèi)容已完全掌握了! 是的,面向?qū)ο蟮木幊陶Z言最大的特色就是可以編寫自己所需的數(shù)據(jù)類型,以更好的解決問題。我想我必須要幫你搞清楚“類,對象,屬性,方法它們之間的關(guān) 系”!就像我前面所說的,人這個“類”是什么也做不了的,因為“人類”只是一個抽象的概念,它不是實實在在的“東西”,而這個“東西”就是所謂的對象。只 有人這個“對象”才能去工作。而類呢?類是對象的描述!對象從類中產(chǎn)生出來!此時,對象具有類所描述的所有的屬性以及方

13、法。-一定要理解這句 話!也許你已經(jīng)有些不知所措了,沒關(guān)系!好好的回味一下,我再舉個例子!例如電視機,電視機都有工作原理圖,那么什么叫電視機呢?只要它能夠?qū)崿F(xiàn)工作原理圖的 所有功能的物體,我們都叫它電視機。你想想是不是這么一回事兒?可是,電視機原理圖是不能工作的,也就是這個原理圖不能收看節(jié)目,只有電視機這個“實體 即所謂的對象”才能收看節(jié)目,也就是說,從類生成出對象之后才算得上是真正的有意義!才能開始工作。此時,電視機擁有電視原理圖所描述的所有的屬性及 方法!明白了吧,呵呵! 我先前介紹過,類是屬性與方法的集合。而這些屬性與方法可以被聲明為私有的(private),公共的(public)或是受

14、保護(protected)的,他們描述了對類成員的訪問控制。下面我分別做一下介紹: 1 公共的(public):把變量聲明為公共類型的之后,那么就可以通過對象來直接訪問,一切都是暴露無遺的!也就是說,你的信用卡密碼別人也能夠直接得到。 2 私有的(private):如果把變量聲明為私有的情況就好多了,想要得到我的信用卡密碼,對象必須要調(diào)用專用的方法才能夠得到。 3 受保護的(protected):介紹繼承時再討論。 4 默認(rèn)控制訪問符(friendly):/JAVA中有而C+中沒有。為了實現(xiàn)數(shù)據(jù)的封裝,提高數(shù)據(jù)的安全性,我們一般會把類的屬性聲明為私有的,而把類的方法聲明為公共的。這樣,對象能夠

15、直接調(diào)用類中定義的所有方法,當(dāng)對 象想要修改或得到自己的屬性的時候就必須要調(diào)用以定義好的專用的方法才能夠?qū)崿F(xiàn)。你想想,你會把你的信用卡密碼公布出來嘛?呵呵!所以,我們提倡的是: “對象調(diào)方法,方法改屬性”;2.2通過實例看內(nèi)存分配: 說了這么多,讓我們來看一個實例吧!比如:現(xiàn)在我們要編寫某家公司員工管理系統(tǒng),你認(rèn)為最合適的數(shù)據(jù)類型是什么?我認(rèn)為是員工個人!但是在面向過程的 語言中,這樣做是不允許的,因為它只能使用語言中的內(nèi)部數(shù)據(jù)類型!而員工不在這個內(nèi)部數(shù)據(jù)類型之內(nèi)!也許有人會說可以用C語言中的struct,好注意! 畢竟它是類的基礎(chǔ)!如果你以前是一名面C或B的程序員,請你忘掉這些,讓我們一起看

16、看如何用類來實現(xiàn)這一切吧! 某家公司的員工是人類的一個特殊群體,它除了具備人類的所有特性與方法外,它還有額外的特性與方法,比如她有她的工資、信用卡密碼、作息時間等等,這 些特性以及工作內(nèi)容,工作量等等這些方法。而在計算機中我們該如何定義這個類呢?下面我將寫出它的格式,讓你看看在計算機中它是張什么樣子的!/*在此我需要再次聲明的是,我用的是JAVA格式,在語法格式上它與C+大不相同!許多細節(jié)以及內(nèi)部操作都有諸多區(qū)別,而在思想上確實大同小異的*/employee.javapublic class employeeprivate String name; /員工姓名private int age;

17、/員工年齡private char sex; /員工性別private float emolument; /員工薪水private boolean lunch; /員工午餐/等等public void heater() /這個方法是用來加工員工的午餐lunch = true;public void setName(String a) /這個方法是修改員工的姓名name= a;public String getName() /這個方法是得到員工的姓名return name;/等等 這樣我們就定義完了我們所需要的數(shù)據(jù)類型?,F(xiàn)在,讓我們來看看它能夠干什么以及怎么工作! 我想要做的是,工作室里有一個光

18、桿司令叫“jingwei”,我修改它的名字后對對它進行輸出,看看我是怎么做的吧!注意:請仔細觀察對象是如何調(diào)用方法的,它使用了“.”操作符!事實上是這樣的,對象調(diào)用公共的屬性或方法時就會使用“.”操作符。然而在C+中,如果定義一個同類型的指針,該指針調(diào)用此對象的方法時,就會使用“->”操作符。更詳細的內(nèi)容清參閱相關(guān)書籍了!/workstation.javaimport java.awt.Graphics;import java.applet.Applet;public class workstation extends Appletprivate employee jingwei ; /

19、對象的聲明,此時并不分配內(nèi)存!public void init()jingwei = new employee(); /*此時創(chuàng)建對象會調(diào)用構(gòu)造函數(shù),稍候介紹*/jingwei.setName(“jw”); /設(shè)置我的名字public void paint(Graphics g)g.drawString("my age is "+jingwei.getName(),10,10);/顯示我的年齡輸出結(jié)果是:my name is jw 這串字符串是在輸出窗口的x坐標(biāo)軸為10 px , y坐標(biāo)軸為10 px的位置。我現(xiàn)在要做的是,把上面的程序做個大解剖,讓你能夠看清楚它到底是怎么

20、一回事兒!(我可不時帶你去看里面的匯編,呵呵,那個我也不會:) 首先還是來看看我們自定義的數(shù)據(jù)類型employee,在應(yīng)用的時候它和int類型的數(shù)據(jù)沒什么兩樣,一樣的需要創(chuàng)建變量(對象),只不過前者是咱自 己定義的,而后這是它內(nèi)置的。Employee這個類中有許多屬性,也有許多方法。而此時,我們不能直接用我們所創(chuàng)建出來的對象調(diào)用它的屬性進行修改。因 為它是private受保護類型的!我要想修改我的姓名我就要用對象調(diào)用setName()這個方法,而我想得到我的姓名就要調(diào)用getName()這個 方法。我們完全是按照航線來行走的,這個航線就是“對象調(diào)方法,方法改屬性” 好的,我真的相信你已經(jīng)明白了

21、這是怎么一回事兒了!呵呵!仰起航帆,繼續(xù)前行!現(xiàn)在讓我們一起來看看workstation這個類。這是個主類,和C+中的main()函數(shù)的味道差不多。其中,在JAVA中,一個文件只允許有而且必須有一個主類,這個主類用public來聲明!他就跟C+中必須要有一個main()函數(shù)是一樣的。 讓我們來看看這個類中的第一條語句!private employee jingwei ;這條語句的作用是聲明一個employee的對象jingwei(在C+中就不用聲明了)。我想要和你說的是“聲明”與“定義”之間的區(qū)別。聲明只是 告訴計算機將要有這樣的一個變量(對象),在內(nèi)存中它并不為這個變量(對象)分配內(nèi)存!而只

22、有在定義的時候才會給這個變量(對象)分配內(nèi)存。(需要說明一 下的是init()方法是完成初始化操作的,在此處定義對象,為對象分配內(nèi)存。start()方法用來啟動瀏覽器的主線程,paint()方法來顯示 Apple的界面。這些是Applet程序所需的,至于Application程序就不需要了,當(dāng)然了,C+中也不需要他們。關(guān)于他們的詳細內(nèi)容清參閱 相關(guān)書籍) 緊接著就開始定一個對象了,對jingwei這個對象進行操作才會有實際的意義。千萬不要有這種想法:“試圖對類進行操作!”就像前面我說的,電視機 原理不能看電視一樣!這是毫無意義的!看這條語句jingwei = new employee();它的

23、意思就是定義一個employee類型的對象jingwei。此時,我想告訴你的是:“jingwei這個對想擁有了些什 么”。它擁有了類所描述的所有的屬性及方法。下面我一一給你列出來:/*所有的employee對象都擁有這些屬性。每創(chuàng)建一個對象就會從新分配一塊內(nèi)存來存放相應(yīng)對象的這些屬性。我的意思是每個對象都有自己“獨特”的一份*/private String name; /員工姓名private int age; /員工年齡private char sex; /員工性別private float emolument; /員工薪水private boolean lunch; /員工午餐/*所有的e

24、mployee對象都擁有這些方法。但在內(nèi)存中只有一份*/public void heater() /這個方法是用來加工員工的午餐lunch = true;public void setName(String a) /這個方法是修改員工的姓名name= a;public String getName() /這個方法是得到員工的姓名return name;/*但是,實際上在創(chuàng)建jingwei這個對象時計算機只給這個對象的所有的屬性分配了內(nèi)存,而并沒有給方法分配內(nèi)存。方法只有一個,是屬于所有的對象的,所以無論創(chuàng)建了多少個對象,計算機只會為一個方法分配一塊內(nèi)存。*/ 我想我還是舉個例子吧,不然你非暈倒

25、不可。呵呵! 看我這條語句“private boolean lunch;”公司不管午餐,每個員工都需要帶飯。我們現(xiàn)在這樣想,公司的空間是所有的內(nèi)存容量,你的辦公桌就是計算機中的內(nèi)存中的一部分(每個員工都有 一份,是在創(chuàng)建對象時分配的)。你把午飯帶到了公司,放在了你的辦公桌上?!拔顼垺闭紦?jù)了你的辦公桌的一角(占了你自己“對象”的一塊內(nèi)存容量)。這份午 飯只屬于你自己,同樣別人的也只屬于她自己!所以每個員工(對象)都需要一快空間(內(nèi)存)來存放自己的午餐(屬性)。在計算機中也是這樣的,每創(chuàng)建一個對 象,就會在內(nèi)存中從新分配一塊內(nèi)存來放“午餐lunch”這個屬性(對象所擁有的所有的屬性)。 計算機只會

26、為對象的屬性分配內(nèi)存。因為每個對象的都不一樣!就像你往公司帶的午飯和我往公司帶的午飯不一樣是一個道理!但方法就不同了。早晨帶的飯中 午就涼了,你需要用微波爐來加熱。微波爐可不用你帶,公司就有(只占公司的一塊空間),它放在了午餐桌上。你想想,微波爐屬于誰的?它屬于所有員工的!因 為每個員工都可以用它。而不必每個員工都帶一份。由此可見,每個員工(對象)都有一份午飯(屬性),但所有的員工(對象)只一個微波爐(方法)。所有的員 工(對象)都可以通過這個微波爐(方法)來改變自己午餐(屬性)的冷熱狀態(tài)。殊途同歸!在計算機中也就是這樣,方法只有一份,供所有的對象使用!而屬性是 每個對象一份,因為每個對象的都

27、不一樣。別和我說你還不明白,不然我會撞墻的,呵呵:) 2.3深入探討函數(shù): 2.3.1構(gòu)造函數(shù)、默認(rèn)構(gòu)造函數(shù)、 缺省構(gòu)造函數(shù) 對于上面的實例,它已經(jīng)能完成絕大部分工作了,但它還是不完善的,還有許許多多的細節(jié)等到我們?nèi)ネ晟?!也許有的同學(xué)已經(jīng)注意到了,當(dāng)我創(chuàng)建完 “jingwei”這個對象時,這個對象的所有的屬性都是空的,也就是說:這個對象的姓名是未定的、年齡是未定的、性別是未定的、薪水是未定的、午餐也是 未定的。而我們想把這些屬性都添加上去,就還要用對象調(diào)用相應(yīng)的方法,去一個個修改!天啊,這簡直是太麻煩了!有沒有什么好方法能夠在我們創(chuàng)建對象的同時 就完成了對屬性賦值的操作呢?哦不,應(yīng)該說是對屬性

28、的初始化呢?當(dāng)然沒問題了,這就需要所謂的構(gòu)造函數(shù)! 構(gòu)造函數(shù)是類中最特殊的函數(shù),它與析構(gòu)函數(shù)的功能正好相反! 從特征上來說:1.它是編程語言中唯一沒有返回值類型的函數(shù)。 2.它的名稱與類的名稱必須要完全相同。 3.它必須被聲明為公共(public)的類型 4,可以對構(gòu)造函數(shù)進行重載。 5.它在創(chuàng)建對象是自動被調(diào)用。 從功能上來說:1.它是對類中的屬性進行初始化。 其實,對于上面的程序來說我們沒有自己定義構(gòu)造函數(shù)。但是,在這種情況下,系統(tǒng)會自動為我們定義一個“默認(rèn)構(gòu)造函數(shù)”。他會把數(shù)值變量自動賦值為0, 把布爾行變量賦值為false等等(但在C+中,默認(rèn)構(gòu)造函數(shù)不初始化其成員)。如果程序員定義了

29、構(gòu)造函數(shù),那么系統(tǒng)就不會再為你的程序添加一個缺默認(rèn) 造函數(shù)了。(在這里,我們提倡的是自己定義構(gòu)造函數(shù),而不是用系統(tǒng)的默認(rèn)構(gòu)造函數(shù)) 還是看個實例吧!這樣比較清楚一些! /employee.java public class employee private String name; /員工姓名 private int age; /員工年齡 private char sex; /員工性別 private float emolument; /員工薪水 private boolean lunch; /員工午餐 /等等 public employee() /這個就是“默認(rèn)”構(gòu)造函數(shù) name = “j

30、w”; /設(shè)置員工姓名 age = 20; /設(shè)置員工年齡 sex = “M”; /設(shè)置員工性別 emolument = 100; /設(shè)置員工薪水 lunch = false; /設(shè)置員工午餐 public void heater() /這個方法是用來加工員工的午餐 lunch = true; /等等 ; 這樣,在我們創(chuàng)建“jingwei”這個對象的同時,它的所有的屬性也被初始化了!顯然,這大大的提高了工作效率,但是,它還是不符合要求。想想看, 如果我們現(xiàn)在創(chuàng)建這個類型的第二個對象的時候會發(fā)生什么事情?告訴你,除了對象的“名”(這個名稱不在是對象屬性中的名稱,而是對象本身的名稱)不一樣 外,其

31、所有的“屬性值”都一樣!比如:現(xiàn)在我們創(chuàng)建第二個對象flashmagic,然而我會發(fā)現(xiàn)這個對象的所有的屬性和jingwei這個對象的所有的 屬性完全相同。而我們只能在用對象的方法去改變著寫屬性了!很顯然,這種方法不大好!我們需要一種方法在創(chuàng)建對象的時候為對象的屬性賦予“我們想要的 值”。 相信你也看到了,默認(rèn)構(gòu)造函數(shù)就顯得無能為力了。我們需要的是帶參數(shù)的構(gòu)造函數(shù),在創(chuàng)建對象時,我們把參數(shù)傳給構(gòu)造函數(shù),這樣就能完成了上述的功能!口說無憑,還是來看個實例吧: /employee.java public class employee private String name; /員工姓名 privat

32、e int age; /員工年齡 private char sex; /員工性別 private float emolument; /員工薪水 private boolean lunch; /員工午餐 /等等 public employee(String n,int a,char s,float e,boolean l) /看這個構(gòu)造函數(shù) name = n; /設(shè)置員工姓名 age = a; /設(shè)置員工年齡 sex = s; /設(shè)置員工性別 emolument = e; /設(shè)置員工薪水 lunch =l; /設(shè)置員工午餐 public void heater() /這個方法是用來加工員工的午餐 lunch = true; /等等 ; 這樣一來,在創(chuàng)建對象的同時我們就可以給他賦予我們想要的值,很顯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論