Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 理性无法解决?_Java_Eclipse - Fatal编程技术网

Java 理性无法解决?

Java 理性无法解决?,java,eclipse,Java,Eclipse,在运行Eclipse时,我正在编写一个程序来为类添加分数,所以它看起来可能非常不专业,但现在开始。基本上我的rational名称无法解析,我也不确定为什么。这和范围有关吗?我已经评论了错误发生的地方 package lab11tests; import java.util.Scanner; public class Tests { private static int num1 = 0; private static int den1 = 1;

在运行Eclipse时,我正在编写一个程序来为类添加分数,所以它看起来可能非常不专业,但现在开始。基本上我的rational名称无法解析,我也不确定为什么。这和范围有关吗?我已经评论了错误发生的地方

  package lab11tests;

    import java.util.Scanner;

    public class Tests {

    private static int num1 = 0;
    private static int den1 = 1;
    private static int num2 = 0;
    private static int den2 = 1;

        static Rational r1 = new Rational(num1,den1);
         static Rational r2 = new Rational(num2,den2);
         static Rational r3 = new Rational();



        public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
            System.out.print("Numerator 1: ");
            num1=input.nextInt();
            System.out.print("Denominator 1: ");
            den1=input.nextInt();
            System.out.print("Numerator 2: ");
            num2 = input.nextInt();
            System.out.print("Denominator 2: ");
            den2 = input.nextInt();

            System.out.println(r1.rational() + " + " + r2.rational() + " equals "+ r3.answer());
        }
    }
        class Rational {

        //  private int firstNum;
        //  private int firstDen;
            private int num;
            private int den;


            public Rational(int n, int d){

                num = n;
                den = d;

            }

            public Rational(){}

            public int getNum(){
                return num;
            }

            public int getDen(){
                return den;
            }

            public void add(){
                int commonDen = r1.getDen() * r2.getDen();`enter code here`
                this.num=(r1.getNum()*r2.getDen())+(r2.getNum()*r1.getDen()); //Errors are here, all r2 and r1's in the add method "cannot be resolved"
                this.den=commonDen;
            }



            public String rational(){
                return num + "/" + den;
            }

            public String answer(){
                return this.num + "/" + this.den;
            }

        }

出错的代码在Rational类内部。尝试使用静态变量r1和r2将导致错误,因为Rational类中没有r1和r2。相反,您需要访问类测试来使用静态变量


这是您当前的代码

int commonDen=r1.getDen()*r2.getDen();
this.num=(r1.getNum()*r2.getDen())+(r2.getNum()*r1.getDen())//此处有错误,添加方法中的所有r2和r1“无法解决”

相反,您的代码应该如下所示

int commonDen=Tests.r1.getDen()*Tests.r2.getDen();
this.num=(Tests.r1.getNum()*Tests.r2.getDen())+(Tests.r2.getNum()*Tests.r1.getDen());


Rational是一个单独的类,这里测试类括号在定义Rational类的行之前已经结束了。提示:变量
r1
r2
r3
属于哪个类?我想是测试类。