亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于Thread類的getName()

這里為什么是Thread.currentTread().getName()。前面章節演員類是直接getName()的。

這里為什么不直接寫System.out.println(getName()+"開始了戰斗").

正在回答

2 回答

其實就是this.getName();這個類是Thread的成員函數,這個方法在Thread中已經實現了,所以在子類中可以直接調用。這兩種寫法沒有本質上的區別,都是指當前對象的xxxx。在實際開發中,加不加this,我沒有查到有一種確切結論,更多是個人習慣吧。不過貌似在訪問當前對象的屬性(變量)的時候一般多用this;而在對象內部調用非靜態方法時不用this,直接用函數名調用。

0 回復 有任何疑惑可以回復我~

因為getName()是Thread類的方法。在關鍵先生這一節中,軍隊的線程是使用Runnable接口實現的,Runnable接口中沒有getName()這個方法,所以要使用currentThread()返回一個當前線程去調用getName()方法。至于在使用extends Thread實現的線程中,使用Thread.currentThread().getName()和getName()是一樣的。作者在這一節都使用Thread.currentThread.getName()應該是為了代碼一致吧。

2 回復 有任何疑惑可以回復我~
#1

慕斯卡4106679 提問者

還有個問題,這里怎么是直接getName()調用方法,一般調用方法是對象點方法,靜態方法則是類點方法,這里前面沒有對象,請問這個是一個怎么樣的調用方法的形式
2015-12-01 回復 有任何疑惑可以回復我~
#2

收拾好鑫情 回復 慕斯卡4106679 提問者

Thread子類的getName()方法是從Thread中繼承過來的,由于Thread中的getName方法是final類型的,所以Thread子類不能對該方法進行覆蓋。this.getName()中this表示本類,super表示父類,一般this可以忽略,只是某些時候如果子類覆蓋了父類中方法,用this.getName(),super.getName()代碼上更清晰。這里不能覆蓋,所以this.getName(),super.getName(),getName()都一樣,我是這樣理解的。
2016-01-07 回復 有任何疑惑可以回復我~
#3

慕斯卡4106679 提問者 回復 收拾好鑫情

謝謝了
2016-01-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于Thread類的getName()

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號