我的问题是,我根本不知道使用什么代码来从 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/