av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

java語(yǔ)言

Java中的對(duì)象與引用知識(shí)詳解

時(shí)間:2025-05-03 10:40:12 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

Java中的對(duì)象與引用知識(shí)詳解

  在Java中,有一組名詞經(jīng)常一起出現(xiàn),它們就是“對(duì)象和對(duì)象引用”,很多朋友在初學(xué)Java的時(shí)候可能經(jīng)常會(huì)混淆這2個(gè)概念,覺(jué)得它們是一回事,事實(shí)上則不然。今天我們就來(lái)一起了解一下對(duì)象和對(duì)象引用之間的區(qū)別和聯(lián)系。以下僅供參考!

Java中的對(duì)象與引用知識(shí)詳解

  1.何謂對(duì)象?

  在Java中有一句比較流行的話,叫做“萬(wàn)物皆對(duì)象”,這是Java語(yǔ)言設(shè)計(jì)之初的理念之一。要理解什么是對(duì)象,需要跟類一起結(jié)合起來(lái)理解。

  “按照通俗的說(shuō)法,每個(gè)對(duì)象都是某個(gè)類(class)的一個(gè)實(shí)例(instance),這里,‘類’就是‘類型’的同義詞。”

  從這一句話就可以理解到對(duì)象的本質(zhì),簡(jiǎn)而言之,它就是類的實(shí)例,比如所有的人統(tǒng)稱為“人類”,這里的“人類”就是一個(gè)類(物種的一種類型),而具體到每個(gè)人,比如張三這個(gè)人,它就是對(duì)象,就是“人類”的實(shí)例。

  2.何謂對(duì)象引用?

  我們先看一段話:

  “每種編程語(yǔ)言都有自己的數(shù)據(jù)處理方式。有些時(shí)候,程序員必須注意將要處理的數(shù)據(jù)是什么類型。

  你是直接操縱元素,還是用某種基于特殊語(yǔ)法的間接表示(例如C/C++里的指針)來(lái)操作對(duì)象。

  所有這些在 Java 里都得到了簡(jiǎn)化,一切都被視為對(duì)象。因此,我們可采用一種統(tǒng)一的語(yǔ)法。

  盡管將一切都“看作”對(duì)象,但操縱的標(biāo)識(shí)符實(shí)際是指向一個(gè)對(duì)象的“引用”(reference)!

  很顯然,從這段話可以看出對(duì)象和對(duì)象引用不是一回事,是兩個(gè)完全不同的概念。

  舉個(gè)例子,我們通常會(huì)用下面這一行代碼來(lái)創(chuàng)建一個(gè)對(duì)象:

  1.Personperson=newPerson("張三");

  有人會(huì)說(shuō),這里的person是一個(gè)對(duì)象,是Person類的一個(gè)實(shí)例。

  也有人會(huì)說(shuō),這里的person并不是真正的對(duì)象,而是指向所創(chuàng)建的對(duì)象的引用。

  到底哪種說(shuō)法是對(duì)的?

  我們先不急著糾結(jié)哪種說(shuō)法是對(duì)的,再看兩行代碼:

  1.Personperson;

  2.person=newPerson("張三");

  這兩行代碼實(shí)現(xiàn)的功能和上面的行代碼是完全一樣的。

  大家都知道,在Java中new是用來(lái)在堆上創(chuàng)建對(duì)象用的,如果person是一個(gè)對(duì)象的話,那么第二行為何還要通過(guò)new來(lái)創(chuàng)建對(duì)象呢?

  由此可見(jiàn),person并不是所創(chuàng)建的對(duì)象,是什么?

  上面的一段話說(shuō)的很清楚,“操縱的標(biāo)識(shí)符實(shí)際是指向一個(gè)對(duì)象的引用”,也就是說(shuō)person是一個(gè)引用,是指向一個(gè)可以指向Person類的對(duì)象的引用。

  真正創(chuàng)建對(duì)象的語(yǔ)句是右邊的new Person("張三");

  再看一個(gè)例子:

  1.Personperson;

  2.person=newPerson("張三");

  3.person=newPerson("李四");

  這里讓person先指向了“張三”這個(gè)對(duì)象,然后又指向了“李四”這個(gè)對(duì)象。

  也就是說(shuō),Person person,這句話只是聲明了一個(gè)Person類的引用,它可以指向任何Person類的實(shí)例。

  這個(gè)道理就和下面這段代碼一樣:

  1.inta;

  2.a=2;

  3.a=3;

  這里先聲明了一個(gè)int類型的變量a,先對(duì)a賦值為2,后面又賦值為3.也就是說(shuō)int類型的變量a,可以讓它的值為2,也可以為3,只要是合法的int類型的數(shù)值即可。

  也就是說(shuō),一個(gè)引用可以指向多個(gè)對(duì)象,而一個(gè)對(duì)象可不可以被多個(gè)引用所指呢?答案當(dāng)然是可以的。

  比如:

  1.Personperson1=newPerson("張三");

  2.Personperson2=person1;

  person1和person2都指向了“張三”這個(gè)對(duì)象。

【Java中的對(duì)象與引用知識(shí)詳解】相關(guān)文章:

Java中Class對(duì)象詳解09-03

Java中對(duì)象和引用的具體區(qū)別05-18

淺談Java中的弱引用10-27

淺談理解Java中的弱引用07-22

java類與對(duì)象的相關(guān)知識(shí)10-02

Java面向?qū)ο笾R(shí)鞏固11-01

Java中創(chuàng)建對(duì)象的方式08-02