问题描述
- javase方面的一个小问题
-
在书上看到一个小例子里面有个语句是这样,getclass().getname();
我知道的是getclass()是object的方法,用的时候不应该是this.getclass().getname();吗
方法前面不是应该有个实例化的对象吗,为什么直接getclass().getname();就可以运行
getclass().getname();和this.getclass().getname();有什么区别吗
源代码如下package day_11;
public class Test_getClass {
@Override
public String toString() {return getClass().getName();
}
public static void main(String[] args) {
System.out.println(new Test_getClass());
}
}
就是感觉好奇怪,没有对象调用方法,像getClass().getName();
这样方法也能单独运行?
解决方案
this在这个地方代指当前对象,如果不加this的话也是从当前对象找,所以这两个方法执行的结果来看是一样的,但是执行的过程来讲是不一样的,所以尽量要加上,效率会更高些
解决方案二:
public class Test_getClass {
@Override
public String toString() {//这是Test_getClass的类方法,内部调用没有指明都是当前对象可用的属性或者方法。
return getClass().getName();//当前类中,可以省略this,默认就是当前对象
}
}
解决方案三:
应该是在这个类中,直接调用的话,this可能是可以省略的吧,个人看法
解决方案四:
查看基类Object
时间: 2024-08-04 07:34:07