public class Try {
String name="";
int age=13;
public void changer(Try t) {
t = this;
}
}
t=this
在這段代碼中做了什麼? 我知道這通常是指頂部的起始變量,但在他的情況下,它看起來像什麼都不做?java類中的這個(指針)JAVA
public class Try {
String name="";
int age=13;
public void changer(Try t) {
t = this;
}
}
t=this
在這段代碼中做了什麼? 我知道這通常是指頂部的起始變量,但在他的情況下,它看起來像什麼都不做?java類中的這個(指針)JAVA
this
總是指當前對象,你可以參考here
什麼T =這在這段代碼呢?
它將爲當前對象分配提供的參考t
。
我知道這通常是指頂部的起始變量,但int 他的情況下它看起來像什麼都不做?
不,你錯了,這不是指頂端的起始變量,而是如上所述,它指的是當前對象。
的this
最常見的用法是通過使用構造函數來初始化的對象的變量,如下所示:
public class Try {
String name; //initialize using constructor
int age; //initialize using constructor
//constructor
public Try(String name, int age) {
this.name = name; //assigns passed name value to current object's name
this.age = age; //assigns passed age value to current object's age
}
}
所以它不指向任何數據地址?
this
保存當前對象的引用(想像一個指針C
)。
如果我們分配兩個名爲t1和t2的對象並說:t1 = t2它指向那個地址我是對嗎?但在這種情況下不?
是,如果分配t1=t2
然後你正在t1
指向相同的對象t2
也即,二者t1
和t2
參閱堆上相同的對象。
t= this
表示您將當前的構造函數對象分配給本地變量t
。 this
引用當前對象。
對不起,我只是一個新手。 –
它將'this'賦給局部變量't'然後返回,所以基本上什麼都沒有。 – tkausl
好吧,所以它不指向任何數據的地址?如果我們分配兩個名爲t1和t2的對象並說:t1 = t2它指向那個地址我是對嗎?但在這種情況下不? –