Java實(shí)例對(duì)象概念圖解_第1頁(yè)
Java實(shí)例對(duì)象概念圖解_第2頁(yè)
Java實(shí)例對(duì)象概念圖解_第3頁(yè)
Java實(shí)例對(duì)象概念圖解_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上Java編程面向?qū)ο箢惻c對(duì)象的關(guān)系面向?qū)ο笫且环N組件化的設(shè)計(jì)思想,OOA、OOD、OOP類與對(duì)象是整個(gè)面向?qū)ο笾凶顬榛A(chǔ)的組成單元,如果需要給劃出定義:類就是共性的集合,而對(duì)象是某一個(gè)性的產(chǎn)物;所有類實(shí)際上是用來(lái)描述一個(gè)對(duì)象的結(jié)構(gòu)。類是通過(guò)對(duì)象來(lái)使用的,而對(duì)象是通過(guò)類來(lái)創(chuàng)建的。類與對(duì)象的基本定義:在程序中,定義類,可以使用“class 類名稱”的語(yǔ)法結(jié)構(gòu)完成。而類之中的組成主要有兩點(diǎn):* Field (屬性、成員、變量),就是一推變量的集合* Method (方法、行為),此時(shí)的方法是由對(duì)象調(diào)用的。class Book/定義一個(gè)新類String title;/名字d

2、ouble price;/價(jià)格public void getInfo()/此方法將由對(duì)象調(diào)用System.out.println("名稱"+title+“價(jià)格”+price);這個(gè)類中定義了兩個(gè)屬性和一個(gè)方法(可以定義更多屬性和方法)*類雖然存在,但是類的使用,必須有對(duì)象;對(duì)象的定義格式:聲明并實(shí)例化對(duì)象:類名稱 對(duì)象名稱 = new 類名稱();分步完成:聲 明 對(duì) 象: 類名稱 對(duì)象名稱 = null;實(shí)例化對(duì)象 : 對(duì)象名稱 = new 類名稱();引用數(shù)據(jù)類型:引用數(shù)據(jù)類型最大的不同在于需要內(nèi)存的開(kāi)辟及使用,所以關(guān)鍵字 new 的主要功能就是開(kāi)辟內(nèi)存空間;即:只要引

3、用數(shù)據(jù)類型想使用,就必須使用 關(guān)鍵字 new 來(lái)開(kāi)辟空間。當(dāng)一個(gè)對(duì)象實(shí)例化之后就可以使用以下方式利用對(duì)象來(lái)操作類的結(jié)構(gòu):對(duì)象.屬性:表示要操作類中屬性內(nèi)容對(duì)象.方法():表示要調(diào)用類中的方法內(nèi)容class Book/新類String title;/名字double price;/價(jià)格public void getInfo()/此方法將由對(duì)象調(diào)用System.out.println("名稱:" + title + "t" + "價(jià)格:" + price);public class demo1public static void main

4、(String args)Book bk = new Book() ;/聲明并實(shí)例化對(duì)象bk.title = "Java開(kāi)發(fā)" ;/title屬性的操作bk.price = 89.9 ;/操作屬性內(nèi)容bk.getInfo();/調(diào)用類中的 “getInfo()”方法內(nèi)存概念:堆內(nèi)存:保存每一個(gè)對(duì)象的屬性內(nèi)容,堆內(nèi)存需要用關(guān)鍵字 new 才可以開(kāi)辟;棧內(nèi)存:保存的是一塊堆內(nèi)存的地址。簡(jiǎn)單的理解,棧內(nèi)存保存的是對(duì)象的名字;編程中的棧內(nèi)存和堆內(nèi)存的操作過(guò)程:棧內(nèi)存0xbookA堆內(nèi)存title=”,price=”Book bk = new Book() ;bk.title = &

5、quot;Java開(kāi)發(fā)" ;棧內(nèi)存0xbookA堆內(nèi)存Title=”java”price=”bk.price = 89.9 ;棧內(nèi)存0xbookA堆內(nèi)存Title=”java”price=”89.9”引用數(shù)據(jù)的初步分析:引用是整個(gè)Java開(kāi)發(fā)中的核心精髓所在,即:只有掌握了“引用”這一概念之后,才能加入下一步學(xué)習(xí),類似C/C+中的指針概念。在所有的引用分析里面,最關(guān)鍵的還是在于關(guān)鍵字 “new”,每一次使用關(guān)鍵字new,都會(huì)開(kāi)辟新的堆內(nèi)存空間,如果你的代碼里面聲明兩個(gè)對(duì)象,并且使用了關(guān)鍵字new為兩個(gè)對(duì)象分別實(shí)例化操作,那么一定是各自占有各自(獨(dú)立)的堆內(nèi)存空間class Book/

6、新類String title;/名字double price;/價(jià)格public void getInfo()/此方法將由對(duì)象調(diào)用System.out.println("名稱:" + title + "t" + "價(jià)格:" + price);public class demo1public static void main(String args)Book bookA = new Book() ;/聲明并實(shí)例化對(duì)象Book bookB = null ;/聲明對(duì)象bookA.title = "Java開(kāi)發(fā)" ; bo

7、okA.price = 89.9 ;bookB = bookA ;/ 引用傳遞bookB.price = 69.8 ; bookA.getInfo() ; 嚴(yán)格來(lái)說(shuō),bookA和bookB里面保存的是實(shí)例化對(duì)象的地址,所以以上的引用過(guò)程就屬于將bookA的地址賦給了bookB。由于此時(shí),兩個(gè)對(duì)象(棧內(nèi)存地址)指向的是同一個(gè)堆內(nèi)存空間;由此,任何一個(gè)對(duì)象修改了堆內(nèi)存數(shù)據(jù),那么都會(huì)影響到其它對(duì)象;在引用的過(guò)程中,一塊堆內(nèi)存可以通知被多個(gè)棧內(nèi)存所指向,但是反過(guò)來(lái),一塊棧內(nèi)存只能夠保存一塊堆內(nèi)存空間的地址。棧內(nèi)存0xbookA1XbookB堆內(nèi)存title=”,price=”Book bk = new

8、 Book();Book bookB = null ;newnull棧內(nèi)存0xbookA1XbookB堆內(nèi)存title=”java”price=89.9bookA.title=”java開(kāi)發(fā)”bookA.price=89.9newnull棧內(nèi)存0xbookA1XbookB堆內(nèi)存title=”java”price=89bookB = bookA ;new棧內(nèi)存0xbookA1XbookB堆內(nèi)存title=”java”price=69bookB.price=69.8newclass Book/新類String title;/名字double price;/價(jià)格public void getInfo

9、()/此方法將由對(duì)象調(diào)用System.out.println("名稱:" + title + "t" + "價(jià)格:" + price);public class demo1public static void main(String args)Book bookA = new Book() ;/ 聲明并實(shí)例化對(duì)象Book bookB = new Book() ;/聲明并實(shí)例化對(duì)象bookA.title = "Java開(kāi)發(fā)" ; bookA.price = 89.9 ;bookB.title = "JSP開(kāi)

10、發(fā)" ;bookB.price = 69.8 ; bookB = bookA ;/ 引用關(guān)系bookB.price = 100.10; bookA.getInfo() ; 在過(guò)程中,bookB已經(jīng)有了指向的堆內(nèi)存,所以在bookB=bookA 產(chǎn)生引用關(guān)系時(shí),bookB會(huì)自動(dòng)斷掉原先的指向(堆內(nèi)存)連接,從而指向bookA所指向的堆內(nèi)存。在Java中,沒(méi)有棧內(nèi)存指向自己的話,該內(nèi)存則屬于“垃圾”,需要丟棄。Java的垃圾回收機(jī)制>>>一塊沒(méi)有任何棧內(nèi)存指向的堆內(nèi)存空間,就將稱為“垃圾”!所有的垃圾,會(huì)不定期的被垃圾收集器(GC)進(jìn)行回收,回收之后會(huì)釋放掉其所占用的空

11、間。棧內(nèi)存0xbookA1XbookB堆內(nèi)存title=”,price=”Book bookA = new Book();Book bookB = new Book();title=”,price=”new 棧內(nèi)存0xbookA1XbookB堆內(nèi)存title=”java”price=89.9bookA.title=”java開(kāi)發(fā)”;bookA.price=89.9bookB.title = "JSP開(kāi)發(fā)" ;bookB.price = 69.8 ; title=”jsp”price=69.9new 棧內(nèi)存0xbookA1XbookB堆內(nèi)存titl

溫馨提示

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

評(píng)論

0/150

提交評(píng)論