第七行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);
}
------解决方案-------------------- 有一种叫this的东西!
------解决方案-------------------- 引用: Quote: 引用:
方法前没有对象的时候默认就是 this 了,this是只这个对象本身的方法,在楼主定义的类中本身是没有这个方法的,所以这个时候就会到它的父类中去寻找这个方法,所以楼主调用的这个方法就是Thread类的getName()方法了。 原来这样,方法前没有对象就默认是用了this呀。。那我们平时写当前类对象的方法时可以在方法名前不加this,这样不就更方便了吗??那为什么还要用this.方法名()?直接方法名()不更好
在当前类中调用本类的方法当然不用写this啦,是不是更好那倒没有这种说法,个人习惯而已吧,我一般就不写!
------解决方案-------------------- 调用父亲的方法啦,父亲有的儿子就有,所以儿子可以直接还不客气拿来用!!!