2016-11-12 26 views
0
public class Try { 
    String name=""; 
    int age=13; 
    public void changer(Try t) { 
     t = this; 
    } 
} 

t=this在這段代碼中做了什麼? 我知道這通常是指頂部的起始變量,但在他的情況下,它看起來像什麼都不做?java類中的這個(指針)JAVA

+0

對不起,我只是一個新手。 –

+1

它將'this'賦給局部變量't'然後返回,所以基本上什麼都沒有。 – tkausl

+0

好吧,所以它不指向任何數據的地址?如果我們分配兩個名爲t1和t2的對象並說:t1 = t2它指向那個地址我是對嗎?但在這種情況下不? –

回答

0

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也即,二者t1t2參閱堆上相同的對象。

0

t= this表示您將當前的構造函數對象分配給本地變量tthis引用當前對象。