<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            java語言

            Java中的對象與引用知識詳解

            時間:2025-05-03 10:40:12 java語言 我要投稿
            • 相關推薦

            Java中的對象與引用知識詳解

              在Java中,有一組名詞經常一起出現,它們就是“對象和對象引用”,很多朋友在初學Java的時候可能經常會混淆這2個概念,覺得它們是一回事,事實上則不然。今天我們就來一起了解一下對象和對象引用之間的區別和聯系。以下僅供參考!

            Java中的對象與引用知識詳解

              1.何謂對象?

              在Java中有一句比較流行的話,叫做“萬物皆對象”,這是Java語言設計之初的理念之一。要理解什么是對象,需要跟類一起結合起來理解。

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

              從這一句話就可以理解到對象的本質,簡而言之,它就是類的實例,比如所有的人統稱為“人類”,這里的“人類”就是一個類(物種的一種類型),而具體到每個人,比如張三這個人,它就是對象,就是“人類”的實例。

              2.何謂對象引用?

              我們先看一段話:

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

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

              所有這些在 Java 里都得到了簡化,一切都被視為對象。因此,我們可采用一種統一的語法。

              盡管將一切都“看作”對象,但操縱的標識符實際是指向一個對象的“引用”(reference)。”

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

              舉個例子,我們通常會用下面這一行代碼來創建一個對象:

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

              有人會說,這里的person是一個對象,是Person類的一個實例。

              也有人會說,這里的person并不是真正的對象,而是指向所創建的對象的引用。

              到底哪種說法是對的?

              我們先不急著糾結哪種說法是對的,再看兩行代碼:

              1.Personperson;

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

              這兩行代碼實現的功能和上面的行代碼是完全一樣的。

              大家都知道,在Java中new是用來在堆上創建對象用的,如果person是一個對象的話,那么第二行為何還要通過new來創建對象呢?

              由此可見,person并不是所創建的對象,是什么?

              上面的一段話說的很清楚,“操縱的標識符實際是指向一個對象的引用”,也就是說person是一個引用,是指向一個可以指向Person類的對象的引用。

              真正創建對象的語句是右邊的new Person("張三");

              再看一個例子:

              1.Personperson;

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

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

              這里讓person先指向了“張三”這個對象,然后又指向了“李四”這個對象。

              也就是說,Person person,這句話只是聲明了一個Person類的引用,它可以指向任何Person類的實例。

              這個道理就和下面這段代碼一樣:

              1.inta;

              2.a=2;

              3.a=3;

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

              也就是說,一個引用可以指向多個對象,而一個對象可不可以被多個引用所指呢?答案當然是可以的。

              比如:

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

              2.Personperson2=person1;

              person1和person2都指向了“張三”這個對象。

            【Java中的對象與引用知識詳解】相關文章:

            Java中Class對象詳解09-03

            Java中對象和引用的具體區別05-18

            淺談Java中的弱引用10-27

            Java中通過final關鍵字面向對象的詳解08-09

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

            java類與對象的相關知識10-02

            Java面向對象知識鞏固11-01

            Java面向對象三大特征詳解07-14

            Java中創建對象的方式08-02

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院