當前位置:首頁 » 編程語言 » java對象引用對象

java對象引用對象

發布時間: 2022-12-27 05:12:50

『壹』 java中,"對象引用"和"對象"問題

a只是保存了引用,也就是對象的地址,真正的對象就是new出來的那個
所以a 可以指向new a 也可以指向new b, 運行時會根據地址獲取真正的對象

『貳』 java 對象引用

java的內存有堆和棧之說,對象放在棧里,而對象引用的變數或是自己定義的變數都放在一個堆里,也就是對象和變數不是在一起放著的,而是一一對應的關系。
舉個例子:
nb1.i這個對象引用的變數i在1號"堆"里
nb2.i這個對象引用的變數i在2號"堆"里
nb1這個對象在1號棧里,
nb2這個對象在2號棧里.
這樣是形成了1號棧引用1號堆里的數據;而2號棧引用的是2號堆里的數據。

最後nb1=nb2,就是兩個對象同時指向nb2所引用的堆里的變數。
因為nb2.i本來等於=33,那麼就會把nb1.i給回收掉,而nb1.i這時候就不是22了,而是33.
這兩個對象都同時引用的是被改變有的變數.也就是33.所以現在對那個棧進行數據更改的話,那麼其實都是對兩個對象進行了更改。

圖解:
本來是
1棧=========================>1堆
2棧=========================>2堆
最後是
1棧
===================》1堆(i=33)
2棧

『叄』 Java中對象和對象引用的區別

對象在內存的一個屋子裡存放(內存像很多屋子). 對象引用值,就是屋子的門牌號,通過這個門牌號可以找到這個屋子.(並不單純是對象內存地址) 對象屬性值,就...

『肆』 java 中 什麼是引用對象

Java中基礎類型(如int、long、short、double、byte、char、float)是傳值,其他類型或自定義類型都是傳引用。

舉個例:
public class A {
private int a;
public void setA(int a) {

this.a = a;

}

public static void main(String[] args) {
A obj = new A();
modifyA(obj);//這里obj就是引用對象,方法modifyA對obj的修改不會影響obj對象所在內存地址。
}

public void modifyA(A a) {
a.setA(10);
}
}

『伍』 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("張三");
再看一個例子:
Person person;
person = new Person("張三");
person = new Person("李四");
這里讓person先指向了「張三」這個對象,然後又指向了「李四」這個對象。也就是說,Person person,這句話只是聲明了一個Person類的引用,它可以指向任何Person類的實例。這個道理就和下面這段代碼一樣:
int a;
a=2;
a=3;
這里先聲明了一個int類型的變數a,先對a賦值為2,後面又賦值為3.也就是說int類型的變數a,可以讓它的值為2,也可以為3,只要是合法的int類型的數值即可。
也就是說,一個引用可以指向多個對象,而一個對象可不可以被多個引用所指呢?答案當然是可以的。
比如:
Person person1 = new Person("張三");
Person person2 = person1;
person1和person2都指向了「張三」這個對象。

『陸』 什麼是對象引用JAVA

你這方面的問題太多了,加295663995.
對象引用也就是說
指向對象那堆空間的首地址的指針。
Person
p
=
new
Person();
new
Person();創建了一個Person對象,這個對象賦值給了p
p獲取的不是Person對象,而是Person對象的首地址。
p就是
new
Person();對象的引用。

『柒』 java引用對象

1.我猜你是想問==和equals的區別,==判斷對象是否是同一個引用,也就是說說他們在內存中是否為同一地址。在代碼中兩個對象都是通過new實例化的,他們在內存中當然不會在同一個地方。equals在沒重寫之前的作用和==是相同的。在object類的equals方法中寫的比較明白:

2.Departemnt dm = (Department)obj;的含義是將Object類型的實例obj強轉成Department的實例,並且賦值給dm;

3.建議,將equals方法和==的概念徹底搞明白之後,你說的這些就都不是問題了。

祝你學習愉快

『捌』 Java中對象和對象引用的區別

對象是堆內存的一塊區域,它負責存儲具體的數據;
對象引用是棧內存的一塊區域,它存的是對象的地址;
Java中我們無法直接操作堆內存里的對象,都是通過棧內存的對象引用來操作的。

『玖』 java中,類的對象,對象的實例,對象的引用,三者如何進行區分,有何區別呢

沒有「對象的實例」這種叫法,正確的叫法是「類的實例」。


沒有學過java,給你說說我的理解吧!


在java和C++這類語言中,對象(對象和實例是同義詞)實際上就是內存中的存儲數據一塊固定存儲空間,並且對象還有一系列的操作這塊存儲空間的方法。


對象的引用相當於對象的名字,名字與對象本身的區別就好比你的名字和你本人的區別。java里使用對象只能通過引用的方式,基本數據類型的變數和CC++的變數規則一樣。


如:

UserTypeut=newUserType();//ut是引用,實際的對象在內存里。
ut=newUserType();/*現在ut是另一個對象的引用,先前的對象被垃圾回收了(因為先前的對象不能被再次使用了)。*/
UserTypeut2;//定義了一個引用ut2,他不引用任何對象,不能使用。。。。
ut2=newUserType();//然ut2成為一個對象的引用。
UserTypeut3=newUserType();
UserTypeut4=newUserType();
ut3=ut4;//現在ut3引用ut4的對象,這里不是賦值。。。
inta=5;
intb=4;
a=b;//這里是賦值。ab依然引用不同的對象


類型轉換就是把一種類型的對象當做另一種類型的對象來使用。一些類型轉換會自動發生,另一些需要強制類型轉換,強制一般都會出問題,自動的也需要注意。


以上純屬個人理解,樓主慎讀之。。。。

『拾』 在Java中要引用對象的屬性和方法,需要怎麼實現

屬性:第一種就是自己定義一個public的公共屬性,然後調用就行了(不安全),第二種就是創建一個private的私有的屬性,生成公共的set和get方法(封裝),然後調用;
方法:同類中方法為靜態方法可以直接調用,不為靜態方法需要new和不同類中要new出對象,然後調用其方法;
左上角有我頭像,有很多朋友在一起相互交流學習。

熱點內容
最快學編程 發布:2024-11-01 07:30:56 瀏覽:527
買福克斯買哪個配置好 發布:2024-11-01 07:01:07 瀏覽:36
pip更新python庫 發布:2024-11-01 06:42:57 瀏覽:666
憶捷加密軟體 發布:2024-11-01 06:34:05 瀏覽:353
androidlistview事件沖突 發布:2024-11-01 06:23:14 瀏覽:858
哈靈麻將在安卓上叫什麼名字 發布:2024-11-01 06:01:47 瀏覽:220
大學生解壓拓展哪裡靠譜 發布:2024-11-01 05:59:20 瀏覽:854
編譯函數求長方形面積和體積 發布:2024-11-01 05:52:16 瀏覽:745
ubuntunginx配置php 發布:2024-11-01 05:50:15 瀏覽:960
前端和java 發布:2024-11-01 05:47:50 瀏覽:434