gpt4 book ai didi

java - Deitel Java 练习 6.30

转载 作者:行者123 更新时间:2023-11-30 07:53:35 24 4
gpt4 key购买 nike

我错过了将实现放在驱动程序类中的要点,而不是让驱动程序类仅调用其他类中的方法。我不确定如何将实现移到主类之外。欢迎提出建议!

/*
*Deitel Chapter 6 Exercise 6.30
*/
package guess;


import java.util.Scanner;

/**
*Driver class for number guessing game
*/
public class GuessDriver {

/**
*
* @param args
*/
public static void main(String[] args) {

Scanner input = new Scanner(System.in);
/*
*instantiate guess class
*/
Guess Guess = new Guess();


/*
*loops program until user guesses correct number
*/
while (Guess.getGuess() != Guess.secretNumber){
/*
*takes input from user
n*/
System.out.println("Enter a number from 1 to 1000: ");
int setGuess = input.nextInt();
Guess.setGuess(setGuess);

/*
*nested if-else statements compares guess against secret number
*/
if(Guess.secretNumber < Guess.guess){
System.out.println("too high");
} else if (Guess.secretNumber > Guess.guess){
System.out.println("too low");
} else {
System.out.println("Congratulations, you win!");
}
}
}
}

/*
*Deitel Chapter 6 Exercise 6.30
*/
package guess;
import java.util.Random;

/**
* Takes in and stores an integer, sets value for random number
*/
public class Guess {


/**
*instance variable
*/
public int guess;

/**
*instance variable
*/
public int secretNumber = (int) (Math.random() * 999 + 1);

/**
*return secret number
* @return
*/
public int getSecretNumber() {
return secretNumber;
}

/**
*return guess
* @return
*/
public int getGuess() {
return guess;
}


/**
*set guess
* @param guess
*/
public void setGuess(int guess) {
this.guess = guess;
}

}

最佳答案

嗯,首先。我建议将 Guess 类的所有变量设为私有(private)。 (请注意,您有一个 getSecretNumber() 方法,该方法已经为您提供了 SecretNumber 变量的值。

其次,您可以在 Guess 类中创建一个公共(public)方法,例如 checkGuessing(int Guess)。此方法将接受用户输入,并在控制台上写下答案(“太高”、“太低”等)。另一种选择可能是将相同的功能添加到 setGuess 方法中。

最后,为了方便以后的调试,您应该用大写字母命名类,用驼峰式字母命名变量(甚至类的实例),并尝试以不同于类名的方式命名该类的变量。

所以最终的代码可能是这样的:在 GuessDriver 类中:

package guessdriver;
import java.util.Scanner;

/**
*Driver class for number guessing game
*/
public class GuessDriver {

/**
*
* @param args
*/
public static void main(String[] args) {

Scanner input = new Scanner(System.in);
/*
*instantiate guess class
*/
Guess guess = new Guess();


/*
*loops program until user guesses correct number
*/
while (guess.checkGuessing()==false){
/*
*takes input from user
n*/
System.out.println("Enter a number from 1 to 1000: ");
int setGuess = input.nextInt();
guess.setGuess(setGuess);



}
}
}

在 Guess 类中:

package guessdriver;

public class Guess {


/**
*instance variable
*/
private int guessing;

/**
*instance variable
*/
private int secretNumber = (int) (Math.random() * 999 + 1);

/**
*return secret number
* @return
*/
public int getSecretNumber() {
return secretNumber;
}

/**
*return guess
* @return
*/
public int getGuess() {
return guessing;
}


/**
*set guess
* @param guess
*/
public void setGuess(int guessing) {
this.guessing = guessing;
}
public boolean checkGuessing(){
if(secretNumber < guessing){
System.out.println("too high");
return false;
} else if (secretNumber > guessing){
System.out.println("too low");
return false;
} else {
System.out.println("Congratulations, you win!");
return true;
}
}
}

关于java - Deitel Java 练习 6.30,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32996560/

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