所以基本上我正在调用一个类进入我的main,然后尝试打印出底部的最后一行,但它一直说它找不到int x和int y的符号。我很确定我已将它们分配给正确的控制台输入。有谁知道我做错了什么。我是java新手。
import java.util.*;
public class mainRational {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
Scanner console2 = new Scanner(System.in);
System.out.println("Enter a number for the numerator and denominator: ");
//creates the first class object
rationalNumbers rational = new rationalNumbers(console.nextInt(), console2.nextInt());
int x = console.nextInt;
int y = console2.nextInt;
System.out.println("Rational Number is: " +x+ "/" +y);
}
}
公共课
public class rationalNumbers {
private int Numerator;
private int Denominator;
private String String;
public rationalNumbers(int Numerator, int Denominator){
if (Denominator==0)
throw new IllegalArgumentException();
this.Numerator=Numerator;
this.Denominator=Denominator;
}
public void rationalNumber(){
}
public int getDenominator(){
return Denominator;
}
public int getNumerator(){
return Numerator;
}
public String toString(){
return String;
}
}
答案 0 :(得分:1)
而不是console.nextInt
应该是console.nextInt()
您不必要地创建了两个Scanner对象 这应该更有意义
System.out.println("Enter a number for the numerator");
int x = console.nextInt();
System.out.println("Enter a number for the denominator");
int y = console.nextInt();
rationalNumbers rational = new rationalNumbers(x,y); //follow class naming convention
System.out.println("Rational Number is: " +x+ "/" +y);
答案 1 :(得分:0)
nextInt()
是Scanner对象的一种方法(在输入一行之前会产生阻塞的副作用)。在对rationalNumbers
类的构造函数的调用中,您可以相应地引用它,这样就可以了。在x
和y
的定义中,您引用了nextInt
成员变量,该变量不存在。您可以再次调用该方法,如
int x = console.nextInt();
int y = console2.nextInt();
在这种情况下,用户必须输入两个以上的数字。您可以在构造rationalNumbers对象之前执行此操作,并为构造函数参数重用x和y,以便打印传递给有理对象的相同数字。
顺便说一句,你的例子中不需要两个不同的Scanner
个对象;您可以将console2
的每次使用替换为console
以获得相同的效果。