這兩種類型有什麼不同?這個函數在java的構造函數中
public class MyClass{
String name;
public MyClass(String nn){
this.name = nn;
name = nn;
}
}
這兩種類型有什麼不同?這個函數在java的構造函數中
public class MyClass{
String name;
public MyClass(String nn){
this.name = nn;
name = nn;
}
}
不,它們完全相同。有時它是有用的是通過使用this
關鍵字明確,因爲可能有兩個變量名稱相同,但不同的範圍,就像這樣:
public class MyClass {
String name;
public MyClass(String name) {
name = name; // Obviously doesn't work
this.name = name; // Now it works.
}
}
但既然你是不是在這種情況下,它不會使一個區別。
不錯,請參閱我以前的問題:http:// stackoverflow。 com/questions/18177249/initialize-variable-with-constructor – Sajad
不,你的情況沒有區別。
,而且有利於在這樣的情況:
public MyClass(String name){
this.name = name; //works
name = name; // doesn't
}
沒有區別。 如果參數的名稱等於字段名稱,則可能需要使用this
。
public MyClass(String name){
this.name = name;
}
不錯,請參閱我以前的問題:http://stackoverflow.com/questions/18177249/initialize-variable-with-constructor – Sajad
在你特別情況下,不合格的名稱解析爲this.name
,但在其他情況下,這可能並非如此。顯而易見的情況是,當構造函數參數具有相同的名稱時,但是還有其他更復雜的涉及內部類的情況,其中實際將名稱解析放入this
轉換品。因此,如果您只對狹義和特定情況感興趣,答案是明確的,但總的來說,您必須警惕Java的變量名稱解析的微妙之處。
不錯,請參閱我以前的問題: http://stackoverflow.com/questions/18177249/initialize-variable-with-constructor – Sajad
有沒有這樣的差異,但「這」必須使用
public MyClass(String name){
this.name = name; // it works
name = name; // it doesn't
}
你需要知道爲什麼我們使用「這個」關鍵字。 所以這裏是你的answer
哪個代碼?如果你問'this.name = nn'和'name = nn'之間的區別,那麼對於這種情況沒有區別 – user902383
@ user902383我編輯它... – Sajad