【发布时间】:2011-04-23 23:31:31
【问题描述】:
大约一周前刚开始学习 Java。我制作了一个 Java 小程序来计算评论数量,以及某事物的平均评论评分。例如,在应用商店中,您将输入 1 星、2 星、3 星、4 星和 5 星评论,程序将计算平均评论分数。无论如何,也许向您展示会更容易。我想要做的是将键盘输入部分放在不同的类中。但是当我尝试这样做时,编译器说“找不到符号”我知道 Java 中没有全局变量,但肯定有一种方法可以将用户输入变量传递给不同的类(?)。我已经尝试使用“extends”关键字来使我的键盘类成为子类,但这也不起作用。我基本上需要访问 firStar、secStar、thrSstar、fouStar 和 fivStar reviewHandler 类中的变量,而这些变量最初是在 keyboardInput 类中定义的。
reviewHandler 类:
public class reviewHandler {
public void reviews() {
keyboardInput keyboard = new keyboardInput();
keyboard.fiveStar();
int oneStar = firStar;
int twoStar = secStar;
int threeStar = thrStar;
int fourStar = fouStar;
int fiveStar = fivStar;
int starOne = oneStar * 1;
int starTwo = twoStar * 2;
int starThree = threeStar * 3;
int starFour = fourStar * 4;
int starFive = fiveStar * 5;
int reviewCount = oneStar + twoStar + threeStar + fourStar + fiveStar;
double reviewStarCount = starOne + starTwo + starThree + starFour + starFive;
double reviewAverage = reviewStarCount / reviewCount;
reviewAverage = reviewAverage * 100;
reviewAverage = Math.round(reviewAverage);
reviewAverage = reviewAverage / 100;
System.out.println("Total reviews: " + reviewCount);
System.out.println("Average review score: " + reviewAverage);
}
}
键盘输入类:
import java.util.Scanner;
public class keyboardInput extends reviewHandler {
public void fiveStar() {
Scanner stars = new Scanner(System.in);
int firStar, secStar, thrStar, fouStar, fivStar;
System.out.println("Number of 1 star reviews: ");
firstar = stars.nextInt();
System.out.println("Number of 2 star reviews: ");
secstar = stars.nextInt();
System.out.println("Number of 3 star reviews: ");
thrstar = stars.nextInt();
System.out.println("Number of 4 star reviews: ");
foustar = stars.nextInt();
System.out.println("Number of 5 star reviews: ");
fivstar = stars.nextInt();
}
}
reviewLauncher 类:
public class reviewLauncher {
public static void main (String[] args) {
reviewHandler start = new reviewHandler();
start.reviews();
}
}
编辑:如果我将 firStar、secStar、thrSstar、fouStar 和 fivStar 变量移出方法,将它们转换为实例变量,程序将编译并运行,但程序将返回当我尝试使用它时为 0。
【问题讨论】:
标签: java input keyboard user-input java.util.scanner