我正在学习java作为初学者,所以如果这个问题非常简单,请耐心等待 - 我们都是从某个地方开始的!
我正在学习tostring方法,显然我的代码是打印出来的“Hello”,但它打印出来的是Ape @ 6D06d9c,我不明白。有人可以帮助解释我错在哪里以及如何纠正它
class Ape {
public String tostring() {
return "Hello";
}
}
public class learningtostring1{
public static void main(String[] args){
Ape kermit = new Ape();
System.out.println(kermit);
}
}
答案 0 :(得分:1)
您覆盖的方法应为:
public String toString() {
return "Hello";
}
Java区分大小写,因此" toString"不同于" tostring"。
如果您使用IDE,更好的方法是在方法之上添加@Override标记。像:
@Override
public String toString() {
return "hello";
}
如果你没有覆盖但是它上面有一个@Override标记,那么你的代码将无法编译。
顺便说一下你打印的东西 - " Ape @ 6D06d9c"使用默认的toString()方法返回className +" @" +对象的哈希码。有关详细信息,请参阅this post。