无法找到符号,我做错了什么?

时间:2014-09-12 08:02:49

标签: java class object int symbols

所以基本上我正在调用一个类进入我的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;
}

}

2 个答案:

答案 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类的构造函数的调用中,您可以相应地引用它,这样就可以了。在xy的定义中,您引用了nextInt成员变量,该变量不存在。您可以再次调用该方法,如

int x = console.nextInt();
int y = console2.nextInt();

在这种情况下,用户必须输入两个以上的数字。您可以在构造rationalNumbers对象之前执行此操作,并为构造函数参数重用x和y,以便打印传递给有理对象的相同数字。

顺便说一句,你的例子中不需要两个不同的Scanner个对象;您可以将console2的每次使用替换为console以获得相同的效果。