从Class中设置并获取Class类型的属性

时间:2015-03-19 07:55:08

标签: java oop tostring

我希望通过传递和返回setter and getter类型的对象来获得Word根词:

class Master {
    Word word = new Word();

    word.setName("eating");
    word.setRootWord(new Word("eat"));

    System.out.println(word.getRootWord().toString());
}


class Word {
    private String name;
    private Word rootWord, synonyms, antonyms;

    public Word () {

    }

    public Word (String name) {
        this.name = name;
    }

    public setName (String name) {
        this.name = name;
    }

    public getName () {
        return this.name;
    }

    public setRootWord (Word rootWord) {
        this.rootWord = rootWord;
    }

    public getRootWord () {
        return this.rootWord;
    }
}

打印的内容类似于Word@42a57993

如何在屏幕上打印eat?或者更好的方法吗?

4 个答案:

答案 0 :(得分:2)

我认为问题出在这一行:

System.out.println(word.getRootWord().toString());

切换到:

System.out.println(word.getRootWord().getName());

或者,作为其他选项,您可以覆盖单词类的toString()方法,如下所示:

class Word {
     public override String toString(){
        return this.getName();
     }
}

Word@42a57993是对象的类名,这是Java中toString方法的默认实现,因为编译器和object类对对象一无所知除了它的类型。

答案 1 :(得分:0)

您需要覆盖对象类的toString方法

答案 2 :(得分:0)

要停止打印相当任意的文字,您可以覆盖您的班级java.lang.Object#toString()的{​​{1}}。

Java使用

Word输出对象的字符串表示形式。在映射应该是唯一的,但只是一个足够的纹理表示的意义上,它不一定是真正的序列化。许多调试器会调用此方法将对象的状态显示为工具提示。

要打印toString(),请拨打eat

答案 3 :(得分:0)

使用此:

System.out.println(word.getRootWord().getName());