JAVA中this和this的區別

2021-03-19 18:26:07 字數 2564 閱讀 8796

1樓:清晨十點

public classname()

public classname(string a)public static void main(string args)

執行結果就是:

sssssssssssss

asdf

this() 就是呼叫自己的無參構造方法,和super()一個道理。

this就是指本物件自身。

java裡的「this」到底是什麼意思

2樓:匿名使用者

this代表當前物件的意思。

這個this肯定是用在某個類的方法裡吧。呵呵,我們繼續往下說。

舉個例子:

public class persion

public string getname()}在這個類中setname方法中第一個變數用this是為了和本方法的引數this做區別,表示這個name指的是person這個類的name屬性,而不是name引數,如果去掉這個this,執行完這個方法後,person類的name屬性仍然為null

getname方法返回的person類的name,之所以不用this是因為沒有必要,因為編譯器會知道這個name就指的是person的name而不是其他的name(因為找個方法沒有name變數和它混淆)。當然,這個方法你也可以顯示的使用return this.name,沒錯。

這些都是最基本的了。開始學只要記住這個就可以了。慢慢的其他的用法也就無師自通了!

3樓:匿名使用者

this表示類例項本身。

this的用法

1、表示對當前物件的引用!

public class a

}2、表示類的成員變數,而非函式引數,注意在函式引數和成員變數同名是進行區分!

public class a

}3、用於在構造方法中引用滿足指定引數型別的構造器。

public class a

public a()}

4樓:匿名使用者

this為一系統資源,只允許使用者讀而不允許寫,它存放當前物件的地址(引用)。

this變數有以下作用:

1. 構造方法重用:

public class rectangle

public rectangle(shape size,location at)

public rectangle(location at)

public rectangle(shape size)

public rectangle()

}2、消除歧義:

location……}

3、返回物件-鏈式方法呼叫:

public class count

void print()

}public class counttest

}4、作為引數傳遞"this」變數-進行**:

假設有一個容器類和一個部件類,在容器類的某個方法中要建立部件類的例項物件,而部件類的構造方法要接受一個代表其所在容器的引數。例如:

class container

}class ***ponent

} 其中我們開發中最常用到的地方是第二點,消除歧義。

比方說有類

public class a

裡面有幾個變數

private string aa,

private string bb;

this 在這裡就代表a ,其實它是對物件a的引用。

我們在用到aa或者bb的時候,this.aa 和 直接用aa 是沒有區別的。

但是假如你在某個方法裡也有個變數aa,比如:

public void dosomething(string aa)

5樓:匿名使用者

public class test

public void setname(string name)public static void main(string args)

}public class test

public void setname(string name)public static void main(string args)

}其實this就表示當前物件,在設定屬性的時候,如果變數名相同,可以起到區分的作用

6樓:

我記得是專項指示。。。具體的真忘記了。。

java中this關鍵字與方法

7樓:等禰看流星雨

就普通方法或者屬性而言,寫this和不寫this沒區別。

this主要是用來和super區分的。this呼叫本類的構造方法,super呼叫父類的構造方法。

8樓:匿名使用者

不寫this。如果是有父類的話,就是呼叫父類的構造方法。

9樓:幽默之星

一般情況下寫不寫是差別不在,因為不寫其實本身也是會有this這個指向的,但在一些情況下一定要寫,比如構造初始化內部的變數恰好寫傳入的變數名一樣的時這時內部的變數加上this才可以區分開

java中的Character和char的區別

character 是 char 的包裝類,char是基礎資料型別,而 character是類,是物件 character封閉了一系列對char的操作 例如判斷大小寫,轉換大小寫等等 java中的character和char的區別 character是一個char類,char是一個型別,你可以把一個...

java中stringreplace和stringreplaceall的區別及

replace是單純的替換字串,而replaceall是替換匹配的正規表示式。以下為jdk api的doc說明 replace charsequence target,charsequence replacement 使用指定的字面值替換序列替換此字串所有匹配字面值目標序列的子字串。replacea...

java中的sleep和wait的區別

對於sleep 方法,我們首先要知道該方法是屬於thread類中的。而wait 方法,則是屬於object類中的。sleep 方法導致了程式暫停執行指定的時間,讓出cpu該其他執行緒,但是他的監控狀態依然保持者,當指定的時間到了又會自動恢復執行狀態。在呼叫sleep 方法的過程中,執行緒不會釋放物件...