2 jj3207401 jj3207401 于 2016.01.27 15:10 提问

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();
这样方法也能单独运行?

6个回答

meng20166
meng20166   Rxr 2016.01.27 15:34
已采纳
this在这个地方代指当前对象,如果不加this的话也是从当前对象找,所以这两个方法执行的结果来看是一样的,但是执行的过程来讲是不一样的,所以尽量要加上,效率会更高些
danielinbiti
danielinbiti   Ds   Rxr 2016.01.27 15:23
 public class Test_getClass {
@Override
public String toString() {//这是Test_getClass的类方法,内部调用没有指明都是当前对象可用的属性或者方法。
return getClass().getName();//当前类中,可以省略this,默认就是当前对象
}
}
danielinbiti
danielinbiti 回复jj3207401: 静态方法用static,没有修饰的说明得实例化后才能用
接近 2 年之前 回复
jj3207401
jj3207401 类方法不是用static修饰的吗
接近 2 年之前 回复
chenbo321chenbo
chenbo321chenbo   2016.01.27 15:20

应该是在这个类中,直接调用的话,this可能是可以省略的吧,个人看法

QZC78
QZC78   2016.01.27 15:26

查看基类Object

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.07.26 19:36

getclass().getname();和this.getclass().getname(),此处的this表示当前对象,加不加执行的结果都是一样的。

guanjun_12
guanjun_12   2017.12.10 11:31

默认有This指针当前对象

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!