如何正确编译tostring方法

时间:2016-01-29 01:47:56

标签: java class object tostring

我正在学习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);
}


}

1 个答案:

答案 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