Cat c = new Cat();
前半部分,Cat c 的意思是,在內(nèi)存中分配一個(gè)變量,名字叫c,這個(gè)變量是Cat類型的,它的值是什么?
一會(huì)兒在說;
后半部分,new Cat(); 這就是new關(guān)鍵字和構(gòu)造方法來創(chuàng)建一個(gè)對(duì)象,Cat()是構(gòu)造方法的名字沒錯(cuò)吧?想造出一個(gè)對(duì)象來,就這么寫,語法規(guī)定的,沒有為什么;
new Cat(); 說明 new這個(gè)Cat類的一個(gè)對(duì)象,程序運(yùn)行的時(shí)候,會(huì)調(diào)用構(gòu)造方法Cat(),等這個(gè)構(gòu)造方法執(zhí)行完了,這個(gè)Cat類型的對(duì)象也就造出來了,真正的出現(xiàn)在內(nèi)存當(dāng)中了;
使用new關(guān)鍵字造出來的對(duì)象,被分配在內(nèi)存的堆區(qū)(heap),而且等這個(gè)對(duì)象真正出來之后,還會(huì)做一件重要的事情:
我們這個(gè)對(duì)象是被分配在內(nèi)存中的,那么內(nèi)存地方大了,這個(gè)對(duì)象在哪里呢?怎么找到它呢?new關(guān)鍵字創(chuàng)建出一個(gè)對(duì)象之后,會(huì)把這個(gè)對(duì)象在內(nèi)存中的地址返回,通過這個(gè)地址就可以找到這個(gè)對(duì)象,那么我們上面的寫法,
Cat c = new Cat();
意思就是說,把這個(gè)對(duì)象在內(nèi)存中的地址 賦值 給變量c,這就是Java中引用概念,c就叫做引用,或者叫引用變量,或者直接叫變量,沒問題,都是它;
c的值就是一個(gè)內(nèi)存地址,或者叫引用地址,通過這個(gè)地址,就可以準(zhǔn)確的找到我們剛才創(chuàng)建出來的對(duì)象,以后我們要使用這個(gè)對(duì)象做一些事情,調(diào)用此對(duì)象的方法什么的,都用過這個(gè)引用,ok?
注意,我再說一遍,好多人都搞不清楚,這個(gè)c到底是對(duì)象還是引用,好多人說c就是Cat類的一個(gè)實(shí)例,這是非常錯(cuò)誤的,c就是引用,不是對(duì)象!我們new出來的這個(gè)東西,真正在內(nèi)存中的這個(gè)東西叫做對(duì)象,叫做實(shí)例
————————————————
版權(quán)聲明:本文為CSDN博主「weixin_39649611」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_39649611/article/details/114245000
浙公網(wǎng)安備 33010602011771號(hào)