从 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 编译器和 object
中 toString
方法的默认实现] class 除了对象的类型外,对对象一无所知。
我想通过传递和返回 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 编译器和 object
中 toString
方法的默认实现] class 除了对象的类型外,对对象一无所知。