Eclipse不允许使用父类中定义的setter

时间:2013-01-15 23:24:46

标签: java constructor setter getter

我很高兴我找到了这个论坛。 我是Java(初学者)的新手,学习如何使用setter,getters和constructor。我遇到了一个错误,不知道如何解决它。请帮我隔离这个错误。 我写了两个类,第一个是一个名为MyCalc的简单Java应用程序,它有2个方法Add(),Multiply()和一个setter setXY。 MyCalc类使用static void main()实例化。

第二课“MyCalcTest”调用第一堂课。独立的Java应用程序MyCalc运行正常,没有错误。但是当我尝试使用MycalcTest中的setter'setXY'来设置参数值时,elipse不允许我使用setXY。有什么理由吗?

以下是两个类的代码:

1)

public class MyCalc {

    private double x, y;

    //findout why it's throwing an error using setXY method from MyClacTest class
    public void setXY(double x, double y) {
        this.x = x;
        this.y = y;
    }
    //this constructor with params works fine when called from MyCalcTest class
    /*public MyCalc(double a, double b){
        this.x = a;
        this.y = b;
    }*/

    //getters
    public double Add(){
        return x+y;
    }

    public double Multiple(){
        return (x * y);
    }

    public static void main(String[] args) {
        //this works when called MyCalc with parameters
        //MyCalc calc = new MyCalc(5, 5);

        MyCalc calc = new MyCalc();
        calc.setXY(5, 5);
        System.out.println("Addition: " + calc.Add());
        System.out.println("multiplication :" + calc.Multiple());

    }

}

2)

public class MyCalcTest {



        //this works when called MyCalc with parameters
        //MyCalc calc = new MyCalc(5, 5);

        MyCalc calc = new MyCalc();

        //this doesn't workto set x,y why??
        calc.setXY(5, 5);


}

1 个答案:

答案 0 :(得分:4)

calc.setXY(5, 5);

必须在方法/构造函数/初始化块中。

public class MyCalcTest {

    MyCalc calc;
    public MyCalcTest (){
    calc = new MyCalc();
    calc.setXY(5, 5);

      }
}