Java 将单词的字符更改为星号

Java 将单词的字符更改为星号,java,class,methods,Java,Class,Methods,这应该将randomWord更改为所有星号 WordHider secretWord = new WordHider(); secretWord.setSecretWord(randomWord); System.out.println(secretWord); 以及另一个类中设置randomWord public void setSecretWord(String newSecretWord) { secretWord = newSecretWord.toLower

这应该将
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;
        }
public void setsectword(字符串newsectword){
secretWord=newSecretWord.toLowerCase();
if(secretWord.length()>0){
字掩码=隐藏字符;
for(int i=1;i

我得到的只是
程序3。WordHider@a37368
用于输出。

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

或者在那个类中创建一个方法来打印这个秘密单词。类似这样的方法来调用它

System.out.println(secretWord.getSecretWord());
而实际的getter方法可能是

public String getSecretWord() {
return wordMask;
}

这里要做的是创建一个新的
WordHider
对象,使用
setSecretWord
方法设置它的一个属性,然后打印该对象而不是属性。您的
WordHider
类可能有一个
getSecretWord
printSecretWord
方法可以执行您想要的操作。

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

    System.out.println(secretWord.wordMask);

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

很好地再次打印
secretWord
,但是
setSecretWord
方法应该将
secretWord
更改为all*'s@tawnpawt确保在打印前调用set方法。l像这样?
secretWord.getSecretWord();
如果这些都是愚蠢的问题,我很抱歉,哈哈,我是新来的在我看来,
toString()
方法在这种情况下应该返回
wordMask
,而不是
secretWord
@Simon我刚刚看到了这一点,并改变了我的getter方法。我有一个
getSecretWord
只返回secretWord。我肯定应该在某种程度上使用
setSecretWord
,它告诉我wordMask有私人访问权限你正在使用setSecre第二点是正确的。不过,听起来您需要通过一个方法访问wordMask。如果还没有一个方法返回它,您可以自己编写一个public
getWordMask
方法(假设允许您编写新方法)。