gpt4 book ai didi

java - Setter 和 Getter 到不同的类

转载 作者:行者123 更新时间:2023-11-30 02:08:48 25 4
gpt4 key购买 nike

我的问题是,我根本不知道使用什么代码来从 getX 方法获取我的值到其他类的主方法。

package hangman;

公开课刽子手{

private int triesLimit;
private String word;

public void setTriesLimit(int triesLimit) {
this.triesLimit = triesLimit;
}

public void setWord(String word) {
this.word = word;
}

public int getTriesLimit() {
return this.triesLimit;
}

public String getWord() {
return this.word;
}


@Override
public String toString() {
return ("Enter Secret Word " + this.getWord()
+ ".\nEnter max # of tries (Must be under 7) "
+ this.getTriesLimit());
}

}

那是来自子类的,我试图将 attemptsLimit 的值存储到此类的 main 方法中包刽子手;

public class PlayHangman {

public static void main(String[] args) {
Hangman hangman = new Hangman();
Scanner scn = new Scanner(System.in);
int triesCount = 0;
int correctCount = 0;
hangman.toString();
int triesLimit = hangman.getTriesLimit();
String secretWord = hangman.getWord();
StringBuilder b = new StringBuilder(secretWord.length());
for (int i = 0; i < secretWord.length(); i++) {
b.append("*");
}
char[] secrectStrCharArr = secretWord.toCharArray();
int charCnt = secretWord.length();
for (int x = 0; triesCount < triesLimit; triesCount++) {
while (charCnt >= 0) {
System.out.println("Secrect Word :" + b.toString());
System.out.println("Guess a letter :");

char guessChar = scn.next().toCharArray()[0];
for (int i = 0; i < secrectStrCharArr.length; i++) {
if (guessChar == secrectStrCharArr[i]) {
b.setCharAt(i, guessChar);
correctCount++;
} else if (guessChar != secrectStrCharArr[i]) {
triesCount++;
System.out.println("Incorrect: " + triesCount);hangmanImage(triesCount,correctCount);
}
}
}
}
}

我尝试在这里查找,但找不到子/父类(super class)中使用的 setter 和 getter

最佳答案

您需要在主方法中创建该类的实例来访问该类中可用的变量和方法,如下所示

public class PlayHangman {

public static void main(String[] args) {
Hangman hangman = new Hangman();
hangman.setTriesLimit(2)
int value = hangman.getTriesLimit();

}

您可以查看 static 关键字来直接访问该值,但这需要对 OOP 和 JAVA 有更多的了解。这应该可以正常工作。

希望有帮助:)

已编辑

ToString 方法只是将模型类中的所有内容转换为 String,您已正确完成此操作,但您实现不正确......更改您的 ToString 内容

@Override
public String toString() {
return ("The Secret Word you entered: " + this.getWord()
+ ".\n The max # of tries (Must be under 7): "
+ this.getTriesLimit());
}

您已经初始化了 Scanner,它可以执行您想要的操作,要求用户输入值,但您还没有实现它,因此将其添加到您的主方法中

    Scanner scn = new Scanner(System.in);
hangman.setTriesLimit(scn.nextInt());
hangman.setWord(scn.next());
hangman.toString()//Will work now

尝试和错误现在是你最好的 friend :)和谷歌一些问题,而不是等待答案:)

关于java - Setter 和 Getter 到不同的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com