java中的對(duì)象與引用

關(guān)鍵詞:對(duì)象,對(duì)象引用,基本數(shù)據(jù)類(lèi)型,傳值


對(duì)象聲明

  • 定義Person類(lèi):
    為了方便說(shuō)明,我們定義的類(lèi)
    public class Person{
    int number
    String name; //對(duì)象屬性;
    public void setName(String name){
    this.name = name;
    } //對(duì)象方法;
    }
  • 聲明語(yǔ)句:
    Person one = new Person();

那么問(wèn)題來(lái)了,上述語(yǔ)句前后的Person是啥意思勒?都是Person對(duì)象?都是Person類(lèi)?還是對(duì)象與類(lèi)的組合?


語(yǔ)句拆分

  1. new Person():這一句應(yīng)該最好理解,即使用new在堆內(nèi)存中創(chuàng)建Person對(duì)象的內(nèi)存空間;
  2. Person one :這句話(huà)其實(shí)是讓程序在棧內(nèi)存中創(chuàng)建一個(gè)名為one的Person對(duì)象的引用;
  3. =:將二者匹配,使得引用指向所開(kāi)辟的具體空間位置。

你可以將Person one看成電視控制器, new Person()看成電視,遙控器指向電視。


對(duì)應(yīng)關(guān)系

  • 一個(gè)對(duì)象引用指向0-1個(gè)對(duì)象;例如
    • Person one;//定義引用無(wú)指向
    • Person one = new Person(); //引用指向?qū)ο罂臻g
  • 一個(gè)對(duì)象可能有0-無(wú)窮個(gè)對(duì)象引用
    0指向;例如
    • Person one = new Person();
      one = null; //失去(所有)引用指向,等待GC回收的對(duì)象實(shí)例;
  • 多個(gè)或無(wú)窮;例如
    • Person one = new Person();
      Person two;
      two = one; //指向同一對(duì)象空間

primitive類(lèi)型與其他類(lèi)型

java中基本數(shù)據(jù)類(lèi)型包括:

基本數(shù)據(jù)類(lèi)型(void不算)
  • 基本類(lèi)型
    int number;
    number = 1;(8類(lèi)數(shù)據(jù)在創(chuàng)建不需要new等關(guān)鍵字開(kāi)辟存儲(chǔ)空間,且做局部變量時(shí)number在棧中存值)
    System.out.print(number); //輸出number的值
  • 其他類(lèi)型
    Person one;
    one = new Person();
    Person.number ; //在聲明引用指向后,未定義的實(shí)例變量系統(tǒng)默認(rèn)為0或null等(依照變量類(lèi)型而定,例Person.number = 0而Person.name = null)
    System.out.print(one); //運(yùn)行結(jié)果Person@15db9742(類(lèi)名加地址值)
    注:8種數(shù)據(jù)是不是對(duì)象呢,它們存在的意義在哪呢?我也理解的不是很透徹。。。。

引用傳遞和值傳遞

  • 引用類(lèi)型:除了在函數(shù)傳值的時(shí)候是"引用傳遞",在任何用"="向?qū)ο笞兞抠x值的時(shí)候都是"引用傳遞"。
  • 值傳遞:*基本類(lèi)型的傳遞都屬于值傳遞,和C語(yǔ)言一樣,當(dāng)把Java的基本數(shù)據(jù)類(lèi)型(如int,char,double等)作為入口參數(shù)傳給函數(shù)體的時(shí)候,傳入的參數(shù)在函數(shù)體內(nèi)部變成了局部變量,這個(gè)局部變量是輸入?yún)?shù)的一個(gè)拷貝,所有的函數(shù)體內(nèi)部的操作都是針對(duì)這個(gè)拷貝的操作,函數(shù)執(zhí)行結(jié)束后,這個(gè)局部變量也就完成了它的使命,它影響不到作為輸入?yún)?shù)的變量。這種方式的參數(shù)傳遞被稱(chēng)為"值傳遞"。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,765評(píng)論 18 399
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,937評(píng)論 18 139
  • 寫(xiě)在前面 從大一伊始,就想著要多讀書(shū),后來(lái)聽(tīng)到“人丑就要多讀書(shū)”這句話(huà),發(fā)現(xiàn)自己確實(shí)需要讀書(shū)了。 今年上半年,受到...
    賤賤在簡(jiǎn)書(shū)閱讀 612評(píng)論 0 6
  • 當(dāng)你學(xué)不進(jìn)去時(shí),該怎么辦? 2017-09-09初心教育陪你一起去公考 倔●強(qiáng) 逆風(fēng)的方向 更適合飛翔 我不怕千萬(wàn)...
    陪你一起去公考閱讀 1,298評(píng)論 0 1
  • 從書(shū)本學(xué)到的知識(shí),要多實(shí)踐,才會(huì)用的得心應(yīng)手,才能真正改變自己,養(yǎng)成新的習(xí)慣。 事實(shí)上我一直知道,完成打卡不能結(jié)營(yíng)...
    阿木土閱讀 756評(píng)論 9 21