-1

このフォーラムを見つけてよかったです。私はJava(初心者)に不慣れで、セッター、ゲッター、コンストラクターの使い方を学んでいます。エラーが発生し、解決方法がわかりません。このエラーを特定するのを手伝ってください。私は2つのクラスを作成しました。最初のクラスは、Add()、Multiply()、およびsettersetXYの2つのメソッドを持つMyCalcと呼ばれる単純なJavaアプリです。MyCalcクラスは、static void main()を使用してインスタンス化されます。

2番目のクラス「MyCalcTest」は1番目のクラスを呼び出します。スタンドアロンの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);


}
4

1 に答える 1

4
calc.setXY(5, 5);

メソッド/コンストラクター/初期化ブロック内にある必要があります。

public class MyCalcTest {

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

      }
}
于 2013-01-15T23:29:33.297 に答える