一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java中的對(duì)象和引用詳解

Java中的對(duì)象和引用詳解

2020-09-28 13:21Java之家 JAVA教程

這篇文章主要介紹了Java中的對(duì)象和引用詳解的相關(guān)資料,需要的朋友可以參考下

Java中的對(duì)象引用詳解

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

1.何謂對(duì)象?

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

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

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

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

  我們先看一段話:

  “每種編程語言都有自己的數(shù)據(jù)處理方式。有些時(shí)候,程序員必須注意將要處理的數(shù)據(jù)是什么類型。你是直接操縱元素,還是用某種基于特殊語法的間接表示(例如C/C++里的指針)來操作對(duì)象。所有這些在 Java 里都得到了簡化,一切都被視為對(duì)象。因此,我們可采用一種統(tǒng)一的語法。盡管將一切都“看作”對(duì)象,但操縱的標(biāo)識(shí)符實(shí)際是指向一個(gè)對(duì)象的“引用”(reference)。”  

  這段話來自于《Java編程思想》,很顯然,從這段話可以看出對(duì)象和對(duì)象引用不是一回事,是兩個(gè)完全不同的概念。舉個(gè)例子,我們通常會(huì)用下面這一行代碼來創(chuàng)建一個(gè)對(duì)象:

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

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

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

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

?
1
2
Person person;
person = new Person("張三");

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

  再看一個(gè)例子:

?
1
2
3
Person person;
person = new Person("張三");
person = new Person("李四");

  這里讓person先指向了“張三”這個(gè)對(duì)象,然后又指向了“李四”這個(gè)對(duì)象。也就是說,Person person,這句話只是聲明了一個(gè)Person類的引用,它可以指向任何Person類的實(shí)例。這個(gè)道理就和下面這段代碼一樣:

?
1
2
3
int a;
a=2;
a=3;

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

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

  比如:

?
1
2
Person person1 = new Person("張三");
Person person2 = person1;

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

  關(guān)于對(duì)象和對(duì)象引用的區(qū)別和聯(lián)系暫時(shí)就講這么多了,感興趣的朋友可以查閱相關(guān)文檔和資料?! ?/p>

       感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产综合网 | 欧美成a人片免费看久久 | 嫩草影院永久一二三入口 | 国产偷窥女洗浴在线观看亚洲 | 四虎影视e456fcom四虎影视 | 成年女人免费 | 日韩aaa| 亚洲国产一区二区三区青草影视 | 免费国产成人 | 国模孕妇季玥337p人体 | 秋霞理论在一l级毛片 | www.精品在线 | 四虎成人国产精品视频 | 色天天综合色天天碰 | 506070老熟肥妇bbwxx视频 500第一精品 | 亚洲日日操| 98pao强力打造高清免费 | 成年女人毛片免费观看中文w | 清纯漂亮女友初尝性过程 | 国内揄拍国内精品久久 | 成年人天堂 | 久久久久久久久性潮 | 免费视频观看 | 成人性色生活片免费网 | 天天狠天天天天透在线 | 91色爱| 视频一区二区三区在线 | 无人区免费一二三四乱码 | 好吊色网站| 天堂精品高清1区2区3区 | 亚洲xxxxxhd奶水女人 | 冰漪丰满大乳人体图片欣赏 | 91久久精品青青草原伊人 | 黑帮大佬与我的365天2标清中文 | 欧美成人一区二区三区 | 亚洲国产情侣偷自在线二页 | 国产精品亚洲专区在线播放 | 青青热久免费精品视频精品 | 日本免费在线播放 | 扒开双腿羞辱调教play视频 | 高清女主播一区二区三区 |