慕斯卡4106679
2015-11-30 16:22
这里为什么是Thread.currentTread().getName()。前面章节演员类是直接getName()的。
这里为什么不直接写System.out.println(getName()+"开始了战斗").
其实就是this.getName();这个类是Thread的成员函数,这个方法在Thread中已经实现了,所以在子类中可以直接调用。这两种写法没有本质上的区别,都是指当前对象的xxxx。在实际开发中,加不加this,我没有查到有一种确切结论,更多是个人习惯吧。不过貌似在访问当前对象的属性(变量)的时候一般多用this;而在对象内部调用非静态方法时不用this,直接用函数名调用。
因为getName()是Thread类的方法。在关键先生这一节中,军队的线程是使用Runnable接口实现的,Runnable接口中没有getName()这个方法,所以要使用currentThread()返回一个当前线程去调用getName()方法。至于在使用extends Thread实现的线程中,使用Thread.currentThread().getName()和getName()是一样的。作者在这一节都使用Thread.currentThread.getName()应该是为了代码一致吧。
深入浅出Java多线程
186088 学习 · 464 问题
相似问题
回答 1
回答 1
回答 1
回答 1