从 ClassA 设置并获取 ClassB 类型的 属性

set and get a property of type ClassB from ClassA

我想通过传递和返回 Word 类型的对象来为词根创建一个 setter and getter:

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?或者更好的方法?

您需要重写对象的toString方法class

要停止打印相当随意的文本,您可以为 class Word.

覆盖 java.lang.Object#toString()

toString()被Java用来输出对象的字符串表示。它不一定是真正的 序列化 ,因为映射应该是唯一的,而只是足够的纹理表示。许多调试器将调用此方法以将对象的状态显示为工具提示。

要打印 eat,请致电 word.getRootWord().getName()

使用这个:

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

我认为问题出在这一行:

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

切换为:

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

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

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

Word@42a57993 是对象的 class 名称,这是 Java 编译器和 objecttoString 方法的默认实现] class 除了对象的类型外,对对象一无所知。