當前位置:編程學習大全網 - 編程語言 - java中對象和對象引用的區別

java中對象和對象引用的區別

1.何謂對象?

在Java中有壹句比較流行的話,叫做“萬物皆對象”,這是Java語言設計之初的理念之壹。要理解什麽是對象,需要跟類壹起結合起來理解。下面這段話引自《Java編程思想》中的壹段原話:

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

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

2.何謂對象引用?

我們先看壹段話:

“每種編程語言都有自己的數據處理方式。有些時候,程序員必須註意將要處理的數據是什麽類型。妳是直接操縱元素,還是用某種基於特殊語法的間接表示(例如C/C++裏的指針)來操作對象。所有這些在 Java 裏都得到了簡化,壹切都被視為對象。因此,我們可采用壹種統壹的語法。盡管將壹切都“看作”對象,但操縱的標識符實際是指向壹個對象的“引用”(reference)。”

這段話來自於《Java編程思想》,很顯然,從這段話可以看出對象和對象引用不是壹回事,是兩個完全不同的概念。舉個例子,我們通常會用下面這壹行代碼來創建壹個對象:

Person person = new Person("張三");

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

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

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

Person person;

person = new Person("張三");

這兩行代碼實現的功能和上面的壹行代碼是完全壹樣的。大家都知道,在Java中new是用來在堆上創建對象用的,如果person是壹個對象的話,那麽第二行為何還要通過new來創建對象呢?由此可見,person並不是所創建的對象,是什麽?上面的壹段話說的很清楚,“操縱的標識符實際是指向壹個對象的引用”,也就是說person是壹個引用,是指向壹個可以指向Person類的對象的引用。真正創建對象的語句是右邊的new Person("張三");

  • 上一篇:太原有沒有學習工業機器人技術的地方?
  • 下一篇:因買入大量NFT知名的收藏家是誰
  • copyright 2024編程學習大全網