在Follow class HiddenWord中,我正在创建一个通过字符串初始化的实例变量。这是正确的做法吗?
此外,当我使用此对象时,是否需要使用toString方法?
public class HiddenWord{
private String Hword;
public HiddenWord(String word){
Hword = new HiddenWord(word);
}
}
答案 0 :(得分:1)
我们可以在该类类型的同一个类默认构造函数中创建实例变量吗?
可能但您的代码在您的代码中不相同。您有String类型变量,类类型为HiddenWord
。
当你做的时候
Hword = new HiddenWord(word); // wrong.
不,那是错的。因为字符串不是HiddenWord
。
您只需将收到的字符串分配给可变Hword
this.Hword =word;
此外,当我使用此对象时,是否需要使用toString方法?
这实际上取决于你如何使用它。只是为了展示这堂课的内容?是。
BTW,可变名称以java中的小写字母开头。
答案 1 :(得分:0)
首先:是的,您必须显式调用toString方法将新创建的HiddenWorld对象存储为Hword中的String。
其次,这是一个非常糟糕的主意。调用构造函数会导致递归和StackOverflowError,因为每次调用构造函数时它都会再次调用自身,并继续使用新方法调用填充堆栈。
第三,假设您想要将给定单词存储在Hword中,只需执行以下操作:
Hword = word;
额外: toString方法始终存在于您创建的任何对象中,因为它在Object类中定义,并由所有其他类扩展。