我们可以在该类类型的同一个类默认构造函数中创建实例变量吗?

时间:2017-04-27 10:18:28

标签: java netbeans

在Follow class HiddenWord中,我正在创建一个通过字符串初始化的实例变量。这是正确的做法吗?

此外,当我使用此对象时,是否需要使用toString方法?

public class HiddenWord{

private String Hword;

public HiddenWord(String word){


   Hword = new HiddenWord(word);
}

}

2 个答案:

答案 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类中定义,并由所有其他类扩展。