Java中this關(guān)鍵字有多種常見(jiàn)用法,以下是其中幾個(gè):
1.引用當(dāng)前對(duì)象
this關(guān)鍵字可以用于引用當(dāng)前對(duì)象。在一個(gè)對(duì)象的方法中,可以使用this關(guān)鍵字來(lái)引用該對(duì)象本身。例如:
public class Person { private String name; public void setName(String name) { this.name = name; }}
在上面的示例中,setName()方法中的this關(guān)鍵字引用了當(dāng)前的Person對(duì)象。
2.調(diào)用構(gòu)造函數(shù)
this關(guān)鍵字可以用于調(diào)用同一個(gè)類(lèi)中的另一個(gè)構(gòu)造函數(shù)。在構(gòu)造函數(shù)中,可以使用this關(guān)鍵字調(diào)用同一個(gè)類(lèi)中的另一個(gè)構(gòu)造函數(shù)。例如:
public class Person { private String name; public Person() { this("Unknown"); } public Person(String name) { this.name = name; }}
在上面的示例中,Person()構(gòu)造函數(shù)使用this關(guān)鍵字調(diào)用了另一個(gè)構(gòu)造函數(shù)Person(String name)。
3.區(qū)分局部變量和成員變量
this關(guān)鍵字可以用于區(qū)分局部變量和成員變量。如果在方法中使用局部變量和成員變量具有相同的名稱(chēng),那么可以使用this關(guān)鍵字來(lái)引用成員變量。例如:
public class Person { private String name; public void setName(String name) { this.name = name; }}
在上面的示例中,setName()方法的參數(shù)name與成員變量name具有相同的名稱(chēng)。為了區(qū)分它們,使用this關(guān)鍵字來(lái)引用成員變量name。
4.返回當(dāng)前對(duì)象
this關(guān)鍵字可以用于返回當(dāng)前對(duì)象。在方法中,可以使用this關(guān)鍵字來(lái)返回當(dāng)前對(duì)象。例如:
public class Person { private String name; public Person withName(String name) { this.name = name; return this; }}
在上面的示例中,withName()方法使用this關(guān)鍵字返回當(dāng)前Person對(duì)象。這使得可以使用方法鏈來(lái)對(duì)同一對(duì)象進(jìn)行多個(gè)操作。
這只是this關(guān)鍵字的幾個(gè)常見(jiàn)用法,還有其他用法,如在內(nèi)部類(lèi)中引用外部類(lèi)對(duì)象等。