2013-01-15 2 views
-1

이 포럼을 찾았 기 때문에 기쁩니다. 저는 자바 (초보자)를 초보로 세터, getter 및 생성자를 사용하는 방법을 배웠습니다. 오류가 발생하여 해결 방법을 모르겠습니다. 이 오류를 격리시키는 데 도움을주십시오. 두 클래스를 작성했습니다. 먼저 MyCalc라는 두 가지 메소드 Add(), Multiply() 및 setter setXY가있는 간단한 Java 응용 프로그램이 있습니다. MyCalc 클래스는 static void main()을 사용하여 인스턴스화됩니다.Eclipse가 부모 클래스에 정의 된 설정기를 사용할 수 없음

두 번째 클래스 "MyCalcTest"가 첫 번째 클래스를 호출합니다. 독립형 자바 애플 리케이션 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

작동하지 않는 것에 대한 질문이있는 경우 항상 오류 메시지가 나타납니다. – us2012

답변

4
calc.setXY(5, 5); 

는 메소드/생성자/초기화 블록 안에 있어야한다.

public class MyCalcTest { 

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

     } 
} 
+0

완벽 해. 작동 중입니다. 답장을 보내 주셔서 감사합니다. 나는 여전히 내 PC 앞에있어 크게 도움이되었다. – user1981766

관련 문제