我没有得到正确的输出?

时间:2015-12-30 12:58:46

标签: java class output

我不知道为什么这不起作用,我写错了什么?

public class Testmain {
   /**
    * @param args
    */
    public static void main(String[] args) {

        Wat n1=new This("john","man");

        System.out.println(((This)n1).toString());

        // TODO Auto-generated method stub
    }
}

为什么我将此作为输出:

 This@68e26d2e

作为输出我应该得到的是:

  John man

是的,我知道班级名称是随机的。所以我在类&#34; This&#34;中写了toString()方法,但它仍然没有用。我在子类中的超类和字段firstname中有一个字段gender,但现在在输出中我没有得到gender,只有firstname。< / p>

3 个答案:

答案 0 :(得分:3)

您必须覆盖方法

@Override
public String toString() { 
     return "Name: " + name + " \n Gender:" + gender; 
}

名称,性别是您在构造函数中设置的私有成员。

答案 1 :(得分:1)

覆盖toString()

中的This方法

例如:

@Override
public String toString() {
    return "whatever you want";
}

答案 2 :(得分:1)

This@68e26d2e只是This类的内存地址的十六进制表示。默认情况下,每个对象都有此对象。要拥有自己的字符串表示形式,您必须override toString()方法。

@Override
public String toString() {
    return < your String here >;
}