java中this的n種使用方法
this可能是幾乎所有有一點面向?qū)ο笏枷氲恼Z言都會引用到的變量,java自然不例外。只是,this有多少種用法,我也不知道了,讓我們來see see。
由簡入奢! 易。
來個例子說明下:
public class DebugerTest {
public static void main(String[] args) {
UserExample samp1 = new UserExample("amy");
System.out.println("who are u? ");
System.out.println(samp1.whoAreU());
System.out.println("intro yourself?");
System.out.println(samp1.introYourself());
}
}
class UserExample {
private String name;
private Integer age;
private MyDoll myDoll;
public UserExample() {
this(null);
}
// 3. 調(diào)用本類的其他構(gòu)造方法
public UserExample(String name) {
this(name, -1);
}
public UserExample(String name, Integer age) {
this.name = name;
this.age = age;
this.myDoll = new MyDoll("prize");
}
// 2. 調(diào)用本類屬性
public void changeMyName(String name) {
this.name = name;
}
public void changeMyAge(Integer age) {
this.age = age;
}
public String whoAreU() {
return "I am " + name + ". ";
}
public String haoOldAreU() {
return "i am " + age + " old.";
}
// 1. 調(diào)用本類方法
public String introYourself() {
return this.whoAreU() +
this.haoOldAreU() +
"\r\n whoAmI@ " + this.myDoll.whoAmI() +
"\r\n whoAreSuper@ " + this.myDoll.whoAreSuper();
}
class MyDoll {
private String name;
public MyDoll(String name) {
this.name = name;
}
public void changeMyName(String name) {
this.name = name;
}
// 5. 隱藏式的調(diào)用
public String whoAmI() {
return whoAreU();
}
public String whoAreU() {
return "I am a Doll, my name is " + name + ". ";
}
// 4. 調(diào)用父類的或指定的其他的類的同名方法
public String whoAreSuper() {
return "super is " + UserExample.this.whoAreU() + ". ";
}
}
}
1. 調(diào)用本類方法,表達更清晰
public String introYourself() {
return this.whoAreU() + this.haoOldAreU();
}
2. 調(diào)用本類屬性,基本功亮出來
public void changeMyName(String name) {
this.name = name;
}
3. 調(diào)用本類的其他構(gòu)造方法,更靈活
public UserExample(String name) {
this(name, -1);
}
4. 調(diào)用父類的或指定的其他的類的同名方法,為避免歧義而生的方法
public String whoAreSuper() {
return "super is " + UserExample.this.whoAreU() + ". ";
}
5. 隱藏式的調(diào)用,為了寫代碼方便(更常用),不指定范圍,java會在全類范圍內(nèi)向上查找變量或方法
public String whoAmI() {
return whoAreU();
}
以上樣例輸出結(jié)果如下所示:

this是個基本的關(guān)鍵字,我們平時也一直在用,只是也不一定所有同學都清楚怎么用。
總結(jié)
以上所述是小編給大家介紹的java中this的n種使用方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Java并發(fā)編程this逃逸問題總結(jié)
- Java中super和this的用法詳解
- Java this super代碼實例及使用方法總結(jié)
- java使用this調(diào)用構(gòu)造函數(shù)的實現(xiàn)方法示例
- Java中this,static,final,const用法詳解
- 詳解Java基礎(chǔ)篇--面向?qū)ο?(構(gòu)造方法,static、this關(guān)鍵字)
- 淺談Java中的this作為返回值時返回的是什么
- Java this 關(guān)鍵字的使用方法詳解
- java中this與super關(guān)鍵字的使用方法
- Java 中This用法的實例詳解
- java this引用逃逸詳解
相關(guān)文章
淺談SpringMVC HandlerInterceptor詭異問題排查
這篇文章主要介紹了淺談SpringMVC HandlerInterceptor詭異問題排查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
java同一個類中,一個無事務方法調(diào)用一個有事務方法時,事務失效問題
本文詳細介紹了Spring框架中事務管理的實現(xiàn)原理,包括@Transactional注解的使用、事務的開啟、提交和回滾機制,以及代理對象的兩種實現(xiàn)方式(JDK動態(tài)代理和CGLIB代理),文章還探討了在同一個類中調(diào)用有事務方法時事務失效的原因,并提供了解決方法2024-12-12
深入解讀 Spring Boot 生態(tài)之功能、組件與優(yōu)勢
本文將深入剖析 Spring Boot 的生態(tài)體系,包括其核心功能、生態(tài)組件以及在不同場景中的應用,并附上一張 Spring Boot 生態(tài)系統(tǒng)圖,幫助開發(fā)者更直觀地理解 Spring Boot 的強大之處,感興趣的朋友一起看看吧2024-11-11
SpringBoot混合使用StringRedisTemplate和RedisTemplate的坑及解決
這篇文章主要介紹了SpringBoot混合使用StringRedisTemplate和RedisTemplate的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

