面向對象編程,我的思想(4)
發(fā)表時間:2024-01-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]首先還是來看看我們自定義的數據類型employee,在應用的時候它和int類型的數據沒什么兩樣,一樣的需要創(chuàng)建變量(對象),只不過前者是咱自己定義的,而后這是它內置的。Employee這個類中有許多屬性,也有許多方法。而此時,我們不能直接用我們所創(chuàng)建出來的對象調用它的屬性進行修改。因為它是priv...
首先還是來看看我們自定義的數據類型employee,在應用的時候它和int類型的數據沒什么兩樣,一樣的需要創(chuàng)建變量(對象),只不過前者是咱自己定義的,而后這是它內置的。Employee這個類中有許多屬性,也有許多方法。而此時,我們不能直接用我們所創(chuàng)建出來的對象調用它的屬性進行修改。因為它是private受保護類型的!我要想修改我的姓名我就要用對象調用setName()這個方法,而我想得到我的姓名就要調用getName()這個方法。我們完全是按照航線來行走的,這個航線就是“對象調方法,方法改屬性” 好的,我真的相信你已經明白了這是怎么一回事兒了!呵呵!仰起航帆,繼續(xù)前行! 現(xiàn)在讓我們一起來看看workstation這個類。這是個主類,和C++中的main()函數的味道差不多。其中,在JAVA中,一個文件只允許有而且必須有一個主類,這個主類用public來聲明!他就跟C++中必須要有一個main()函數是一樣的。讓我們來看看這個類中的第一條語句!private employee jingwei ;這條語句的作用是聲明一個employee的對象jingwei(在C++中就不用聲明了)。我想要和你說的是“聲明”與“定義”之間的區(qū)別。聲明只是告訴計算機將要有這樣的一個變量(對象),在內存中它并不為這個變量(對象)分配內存!而只有在定義的時候才會給這個變量(對象)分配內存。(需要說明一下的是init()方法是完成初始化操作的,在此處定義對象,為對象分配內存。start()方法用來啟動瀏覽器的主線程,paint()方法來顯示Apple的界面。這些是Applet程序所需的,至于Application程序就不需要了,當然了,C++中也不需要他們。關于他們的詳細內容清參閱相關書籍)緊接著就開始定一個對象了,對jingwei這個對象進行操作才會有實際的意義。千萬不要有這種想法:“試圖對類進行操作!”就像前面我說的,電視機原理不能看電視一樣!這是毫無意義的!看這條語句jingwei = new employee();它的意思就是定義一個employee類型的對象jingwei。此時,我想告訴你的是:“jingwei這個對想擁有了些什么”。它擁有了類所描述的所有的屬性及方法。下面我一一給你列出來:/*所有的employee對象都擁有這些屬性。每創(chuàng)建一個對象就會從新分配一塊內存來存放相應對象的這些屬性。我的意思是每個對象都有自己“獨特”的一份*/private String name; //員工姓名 private int age; //員工年齡 private char sex; //員工性別 private float emolument; //員工薪水private boolean lunch; //員工午餐/*所有的employee對象都擁有這些方法。但在內存中只有一份*/public void heater(){ //這個方法是用來加工員工的午餐 lunch = true;}public void setName(String a){ //這個方法是修改員工的姓名 name= a;}public String getName(){ //這個方法是得到員工的姓名 return name;}/*但是,實際上在創(chuàng)建jingwei這個對象時計算機只給這個對象的所有的屬性分配了內存,而并沒有給方法分配內存。方法只有一個,是屬于所有的對象的,所以無論創(chuàng)建了多少個對象,計算機只會為一個方法分配一塊內存。*/ 我想我還是舉個例子吧,不然你非暈倒不可。呵呵! 看我這條語句“private boolean lunch;”公司不管午餐,每個員工都需要帶飯。我們現(xiàn)在這樣想,公司的空間是所有的內存容量,你的辦公桌就是計算機中的內存中的一部分(每個員工都有一份,是在創(chuàng)建對象時分配的)。你把午飯帶到了公司,放在了你的辦公桌上。“午飯”占據了你的辦公桌的一角(占了你自己“對象”的一塊內存容量)。這份午飯只屬于你自己,同樣別人的也只屬于她自己!所以每個員工(對象)都需要一快空間(內存)來存放自己的午餐(屬性)。在計算機中也是這樣的,每創(chuàng)建一個對象,就會在內存中從新分配一塊內存來放“午餐——lunch”這個屬性(對象所擁有的所有的屬性)。 計算機只會為對象的屬性分配內存。因為每個對象的都不一樣!就像你往公司帶的午飯和我往公司帶的午飯不一樣是一個道理!但方法就不同了。早晨帶的飯中午就涼了,你需要用微波爐來加熱。微波爐可不用你帶,公司就有(只占公司的一塊空間),它放在了午餐桌上。你想想,微波爐屬于誰的?它屬于所有員工的!因為每個員工都可以用它。而不必每個員工都帶一份。由此可見,每個員工(對象)都有一份午飯(屬性),但所有的員工(對象)只一個微波爐(方法)。所有的員工(對象)都可以通過這個微波爐(方法)來改變自己午餐(屬性)的冷熱狀態(tài)。殊途同歸!在計算機中也就是這樣,方法只有一份,供所有的對象使用!而屬性是每個對象一份,因為每個對象的都不一樣。別和我說你還不明白,不然我會撞墻的,呵呵:)