0

这应该更改randomWord为所有星号

WordHider secretWord = new WordHider();         
secretWord.setSecretWord(randomWord);
System.out.println(secretWord);

以及设置randomWord

public void setSecretWord(String newSecretWord) {
    secretWord = newSecretWord.toLowerCase();
    if (secretWord.length() > 0) {
        wordMask = HIDE_CHAR;
        for (int i = 1; i < secretWord.length(); i++) {
            wordMask += HIDE_CHAR;
        }

我得到的只是program3.WordHider@a37368输出。

4

2 回答 2

0

你得到它是因为这是对象的WorldHider默认 toString 方法。如果您希望它打印其他内容,则需要覆盖它。

或者在该类中创建一个打印秘密词的方法。像这样称呼它

System.out.println(secretWord.getSecretWord());

实际的getter方法可能是

public String getSecretWord() {
return wordMask;
}
于 2013-03-29T01:32:59.023 回答
0

您在这里所做的是创建一个新WordHider对象,使用该方法设置其属性之一setSecretWord,然后打印该对象而不是该属性。你的WordHider类可能有一个getSecretWordorprintSecretWord方法可以做你想做的事。

如果该方法不存在,您只需要打印WordHider'wordMask属性。尝试将您的打印语句替换为:

    System.out.println(secretWord.wordMask);

如果 wordMask 是私有属性,您可能需要为WordHider类编写一个新方法来返回它。

于 2013-03-29T01:37:14.647 回答