Java 我们可以在该类类型的同一类默认构造函数中创建实例变量吗?
在下面的HiddenWord类中,我创建了一个通过字符串初始化的实例变量。这是正确的做法吗 另外,当我使用这个对象时,我是否需要一个toString方法来执行此操作Java 我们可以在该类类型的同一类默认构造函数中创建实例变量吗?,java,netbeans,Java,Netbeans,在下面的HiddenWord类中,我创建了一个通过字符串初始化的实例变量。这是正确的做法吗 另外,当我使用这个对象时,我是否需要一个toString方法来执行此操作 public class HiddenWord{ private String Hword; public HiddenWord(String word){ Hword = new HiddenWord(word); } } 我们可以在该类类型的同一类默认构造函数中创建实例变量吗 这是可能的,但代码中的类型不同。您
public class HiddenWord{
private String Hword;
public HiddenWord(String word){
Hword = new HiddenWord(word);
}
}
我们可以在该类类型的同一类默认构造函数中创建实例变量吗
这是可能的,但代码中的类型不同。您有一个字符串类型变量,并且您的类类型是HiddenWord
当你这么做的时候
Hword = new HiddenWord(word); // wrong.
不,那是错误的。因为字符串不是HiddenWord
您只需将收到的字符串分配给变量Hword
this.Hword =word;
另外,当我使用这个对象时,我是否需要一个toString方法来执行此操作
public class HiddenWord{
private String Hword;
public HiddenWord(String word){
Hword = new HiddenWord(word);
}
}
这取决于你如何使用它。只是为了展示这门课的内容?对
顺便说一句,java中可变名称以小写开头。首先:是的,您必须显式调用toString方法以将新创建的HiddenWorld对象作为字符串存储在Hword中 其次,这是一个非常糟糕的主意。在那里调用构造函数将导致递归和StackOverflowerError,因为每次调用构造函数时,它都会再次调用自身,并不断用新方法调用填充堆栈 第三,假设您希望在Hword中存储给定单词,只需执行以下操作:
Hword = word;
额外:
toString方法始终存在于您创建的任何对象中,因为它是在对象类中定义的,该对象类由所有其他类扩展。如果您在构造函数内调用
new HiddenWord(…)
,它将不起作用。在发布代码之前,您应该始终尝试编译代码;如果您收到任何错误消息,它们将指示您。和Hword
应拼写为hiddenWord
或Hword
,以符合Java的命名约定。把它拼成一种字体会让人困惑。