我写了一个计算器的类:和一个接口:
public class Calculator {public double number_A=0;public double number_B=0;public void setNumberA(double numberA){this.number_A=numberA;}public double getNumberA(){return number_A;}public void setNumberB(double numberB){this.number_B=numberB;}public double getNumberB(){return number_B;}}
public interface ICalculator {public double getResult();}然后写了4个运算类:
public class Addition extends Calculator implements ICalculator{public double getResult(){double result=0;result=number_A+number_B;return result;}}为什么到除法类的时候会报错,不解?
public class Division extends Calculator implements ICalculator {public double getResult(){double result=0;result=number_A/number_B;return result;}}number_A number_B一直是红线,不解??

解决方案 »

  1.   

    public double number_B=0;number_A/number_B; 除数可以为0? ……这个错了
      

  2.   

    我是说你的Calculator类,有没有保存下,你那写法是没有错的,可能就是没有保存Caculator没保存,IDE还没识别那两个变量
      

  3.   

    做除法运算时,必须要为int型数据,java中好像是这样用的
      

  4.   

    我现在也可以了。。不过新建了一个TestCalculator类为主方法类来测试一下。
    不知怎样写。
    import java.util.Scanner;
    public class TestCalculator { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Calculator cal = null;
    ICalculator calc = null;
    Scanner rd=new Scanner(System.in);
    System.out.println("Please enter the first number:");
    cal.setNumberA(rd.nextDouble());
    System.out.println("Please enter the second number:");
    cal.setNumberB(rd.nextDouble());
    System.out.println("Please select the operator symbol:");
    System.out.println("1.+ 2.- 3.* 4./");
    int sign=rd.nextInt();
    switch(sign)
    {
    case 1:
    cal=new Addition();
    break;
    case 2:
    cal=new Subtraction();
    break;
    case 3:
    cal=new Multiplication();
    break;
    }
    System.out.println(cal.number_A+""+sign+""+cal.number_B+"="+calc.getResult());
    }