Java 理性无法解决?
在运行Eclipse时,我正在编写一个程序来为类添加分数,所以它看起来可能非常不专业,但现在开始。基本上我的rational名称无法解析,我也不确定为什么。这和范围有关吗?我已经评论了错误发生的地方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;
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
属于哪个类?我想是测试类。