课程
/后端开发
/Java
/深入浅出Java多线程
这里为什么是Thread.currentTread().getName()。前面章节演员类是直接getName()的。
这里为什么不直接写System.out.println(getName()+"开始了战斗").
2015-11-30
源自:深入浅出Java多线程 2-5
正在回答
其实就是this.getName();这个类是Thread的成员函数,这个方法在Thread中已经实现了,所以在子类中可以直接调用。这两种写法没有本质上的区别,都是指当前对象的xxxx。在实际开发中,加不加this,我没有查到有一种确切结论,更多是个人习惯吧。不过貌似在访问当前对象的属性(变量)的时候一般多用this;而在对象内部调用非静态方法时不用this,直接用函数名调用。
因为getName()是Thread类的方法。在关键先生这一节中,军队的线程是使用Runnable接口实现的,Runnable接口中没有getName()这个方法,所以要使用currentThread()返回一个当前线程去调用getName()方法。至于在使用extends Thread实现的线程中,使用Thread.currentThread().getName()和getName()是一样的。作者在这一节都使用Thread.currentThread.getName()应该是为了代码一致吧。
慕斯卡4106679 提问者
收拾好鑫情 回复 慕斯卡4106679 提问者
慕斯卡4106679 提问者 回复 收拾好鑫情
举报
带你一起深入浅出多线程,掌握基础,展望进阶路线
1 回答关于extends Thread类的问题
1 回答视频中继承Thread中的getname
1 回答关于Thread和Runnable
2 回答关于runnalbe 和thread 的区别
1 回答线程类内部run()的getName()
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号