java類與對象的創(chuàng)建

java類與對象的創(chuàng)建

ID:37711432

大?。?36.02 KB

頁數(shù):19頁

時(shí)間:2019-05-29

java類與對象的創(chuàng)建_第1頁
java類與對象的創(chuàng)建_第2頁
java類與對象的創(chuàng)建_第3頁
java類與對象的創(chuàng)建_第4頁
java類與對象的創(chuàng)建_第5頁
資源描述:

《java類與對象的創(chuàng)建》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、試驗(yàn)四類和對象的創(chuàng)建一.類的定義???類是組成Java程序的基本要素。類封裝了一類對象的狀態(tài)和方法。類用來定義對象的模板。???類的實(shí)現(xiàn)包括兩部分:類聲明和類體。基本格式為:???修飾符class類名[extends父類名]{???????/*類體的內(nèi)容*/???}1.?類聲明???以下是一個(gè)類聲明的例子。???classPeople成為類聲明,People是類名。習(xí)慣上,類名的第一個(gè)字母大寫,但這不是必須的。類的名字不能是Java中的關(guān)鍵字,要符合標(biāo)識符規(guī)定,即類的名字可以由字母、下劃線、數(shù)字或美元符號組成,并且第一個(gè)字母不能是數(shù)字。但給類命名時(shí),最好遵守下列規(guī)則:???(1)如果類名使用

2、拉丁字母,那么名字的首寫字母使用大寫字母,如Hello、Time、People等。???(2)類名最好容易識別,當(dāng)類名由幾個(gè)“單詞”復(fù)合而成時(shí),每個(gè)單詞的首寫字母使用大寫,如BeijingTime、AmericanGame、HelloChina等。2.?類體???編寫類的目的是為了描述一類事物共有的屬性和功能,描述過程由類體來實(shí)現(xiàn)。類聲明之后的一對大括號“{”、“}”以及它們之間的內(nèi)容稱為類體,大括號之間的內(nèi)容稱為類體的內(nèi)容。???類體的內(nèi)容由兩部分構(gòu)成:一部分是變量的定義,用來刻畫屬性;另一部分是方法的定義,用來刻畫功能。???下面是一個(gè)類名為“Trapezia”的類,類體內(nèi)容的變量定義部

3、分定義了4個(gè)float類型變量:top、bottom、high和laderArea,方法定義部分定義了兩個(gè)方法:“getArea”和“setHigh”。二.對象1.?對象的創(chuàng)建???創(chuàng)建一個(gè)對象包括對象的聲明和為對象分配內(nèi)存兩個(gè)步驟。???(1)對象的聲明。???一般格式為:???類的名字對象名字;???如:???這里People是類的名字,zhubajie是我們聲明的對象的名字。???(2)為聲明的對象分配內(nèi)存。???使用new運(yùn)算符和類的構(gòu)造方法為聲明的對象分配內(nèi)存,如果類中沒有構(gòu)造方法,系統(tǒng)會(huì)調(diào)用默認(rèn)的構(gòu)造方法(你一定還記得構(gòu)造方法的名字必須和類名相同這一規(guī)定),如:???例1:???

4、「注」如果類里定義了一個(gè)或多個(gè)構(gòu)造方法,那么Java不提供默認(rèn)的構(gòu)造方法。2.?對象的使用???對象不僅可以改變自己變量的狀態(tài),而且還擁有了使用創(chuàng)建它的那個(gè)類中的方法的能力,對象通過使用這些方法可以產(chǎn)生一定的行為。???通過使用運(yùn)算符“.”,對象可以實(shí)現(xiàn)對自己的變量訪問和方法的調(diào)用。???例2:???程序執(zhí)行結(jié)果如下:???類中的方法可以操作成員變量,當(dāng)對象調(diào)用該方法時(shí),方法中出現(xiàn)的成員變量就是指該對象的成員變量。在上述代碼中,當(dāng)對象zhubajie調(diào)用speak方法后,就將自己的頭修改成:“歪著頭”。同樣,對象sunwukong調(diào)用speak方法后,也將自己的頭修改成:“歪著頭”。3.?對

5、象的引用和實(shí)體???當(dāng)用類創(chuàng)建一個(gè)對象時(shí),類中的成員變量被分配內(nèi)存空間,這些內(nèi)存空間稱為該對象的實(shí)體,而對象中存放著引用,以確保實(shí)體由該對象操作使用。???再以例1中的Point類為例,假如分別使用類的構(gòu)造方法Point(intx,inty)創(chuàng)建了兩個(gè)對象p1、p2:???那么內(nèi)存模型如圖4-1-1所示:圖4-1-1?對象內(nèi)存模式1???假如在程序中使用了下述賦值語句:????p1=p2;???把p2的引用(p2在內(nèi)存中的名字)賦給了p1,因此p1和p2本質(zhì)上是一樣的了。雖然在源文件中p1、p2是兩個(gè)名字,但在系統(tǒng)看來它們的名字是一個(gè):0xDD。系統(tǒng)將取消原來分配給p1的內(nèi)存,即釋放分配給p

6、1的變量。這時(shí)如果輸出p1.x的結(jié)果將是6,而不是12,即p1、p2有相同的實(shí)體。內(nèi)存模式變成如圖4-1-2所示:圖4-1-2?對象內(nèi)存模式2???因此,如果一個(gè)類創(chuàng)建的兩個(gè)對象具有相同的引用,那么就具有完全相同的實(shí)體。沒有實(shí)體的對象稱為空對象,空對象不能使用,即不能讓一個(gè)空對象去調(diào)用方法產(chǎn)生行為。假如程序中使用了空對象,程序在運(yùn)行時(shí)會(huì)出現(xiàn)異常:NullPointerException。由于對象是動(dòng)態(tài)地分配實(shí)體,所以Java的編譯器對空對象不做檢查。因此,在編寫程序時(shí)要避免使用空對象。???「注」實(shí)際上,Java有所謂“垃圾收集”機(jī)制,這種機(jī)制周期地檢測某個(gè)實(shí)體是否已不再被任何對象所擁有,如

7、果發(fā)現(xiàn)這樣的實(shí)體,就釋放實(shí)體占有的內(nèi)存。因此,Java編程人員不必像C++程序員那樣,要時(shí)刻自己檢查哪些對象應(yīng)該釋放內(nèi)存。在上述程序中,當(dāng)將p2的引用賦給p1后,最初分配給對象p1的變量(實(shí)體)所占有的內(nèi)存就會(huì)被釋放。4.?參數(shù)傳值???當(dāng)方法被調(diào)用時(shí),如果方法有參數(shù),參數(shù)必須要實(shí)例化,即參數(shù)變量必須有具體的值。在Java中,方法的所有參數(shù)都是“傳值”的,也就是說,方法中參數(shù)變量的值是調(diào)用者指定的值的副本。例

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。