读书人

第七行getName()前面没有对象?不通过

发布时间: 2013-12-15 22:17:18 作者: rapoo

第七行getName()前面没有对象?不通过对象怎么可以调用方法?很不理解
第七行getName()前面没有对象?不通过对象如何可以调用方法?很不理解
第七行getName()前面没有对象?不通过对象如何可以调用方法?很不理解
public class TestJoin extends Thread {
public TestJoin(String name){
super(name);
}
public void run(){
for(int i=0;i<5;i++){
System.out.println(getName()+i);//第七行
}
}
public static void main(String[] args) {

for(int i=0;i<10;i++){
if(i==5){
//实例化JoinTest线程对象
Thread tj=new TestJoin("半路杀出线程"+i);
tj.start();
try {
tj.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+i);
}

[解决办法]

引用:
Quote: 引用:

方法前没有对象的时候默认就是 this 了,this是只这个对象本身的方法,在楼主定义的类中本身是没有这个方法的,所以这个时候就会到它的父类中去寻找这个方法,所以楼主调用的这个方法就是Thread类的getName()方法了。
原来这样,方法前没有对象就默认是用了this呀。。那我们平时写当前类对象的方法时可以在方法名前不加this,这样不就更方便了吗??那为什么还要用this.方法名()?直接方法名()不更好


在当前类中调用本类的方法当然不用写this啦,是不是更好那倒没有这种说法,个人习惯而已吧,我一般就不写!
[解决办法]
调用父亲的方法啦,父亲有的儿子就有,所以儿子可以直接还不客气拿来用!!!

读书人网 >J2SE开发

热点推荐