当我在Java中打印出** this **指针时,它显示的数字是多少?
这个程序
public class HelloWorld{ public void testFunc(){
System.out.println("Class = "+this);
}
public static void main(String[] args){
HelloWorld hw = new HelloWorld();
System.out.println("Hello, World");
hw.testFunc();
}
}
给我这个输出:
Hello, WorldClass = HelloWorld@7c6768
这是什么@7c6768
的HelloWorld后,在第二行是什么意思?
回答:
根据Object类中toString()方法的Docs
类Object的toString方法返回一个字符串,该字符串由该对象是其实例的类的名称,符号字符“
@”以及该对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回的字符串等于:
什么时候
getClass().getName() + '@' + Integer.toHexString(hashCode())
当您在object上调用toString()时,如果您像下面这样使用
,则会得到自己的实现
@Override public String toString() {
//return something
}
否则,将提供默认实现,您现在将看到它
来自Object类的源代码
返回对象的字符串表示形式。通常,toString方法返回一个“以文本形式表示”此对象的字符串。结果应该是简洁易懂的陈述,便于人们阅读。建议所有子类都重写此方法。
类Object的toString方法返回一个字符串,该字符串由该对象是其实例的类的名称,符号字符“
@”以及该对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回一个等于以下值的字符串:getClass()。getName()+’@’+
Integer.toHexString(hashCode())
Returns:a string representation of the object.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
以上是 当我在Java中打印出** this **指针时,它显示的数字是多少? 的全部内容, 来源链接: utcz.com/qa/398185.html