2012-07-07 2 views
0

추상 클래스를 테스트하려고하지만 테스트 클래스의 메서드를 호출 할 때 문제가 발생합니다. 자바를 사용한 이후로 나는 오래 동안 추상적 클래스를 사용하지 않았다. 내가 잘못 가고있는 곳의 어떤 포인터라도 감사 할 것입니다. 감사.추상 데이터 형식 사용 시도 - 상속을 통해 메서드를 호출하는 방법

추상 클래스

public abstract class RationalNumbers { 

    public int numerator, denominator, temp; 

    public void setNumerator(int n) { 
     numerator = n; 
    } 

    public void setDenominator(int d) { 
     denominator = d; 
    } 

    public int getNumerator() { 
     return numerator; 
    } 

    public int getDenominator() { 
     return denominator; 
    } 

    public int add() { 
     temp = numerator + denominator; 
     return temp; 
    } 

    public int subtract() { 
     temp = numerator - denominator; 
     return temp; 
    } 

    public int multiply() { 
     temp = numerator * denominator; 
     return temp; 
    } 

    public int divide() { 
     temp = numerator/denominator; 
     return temp; 
    } 

    public boolean isEqual() { 
     boolean isEqual; 
     if (numerator == denominator) { 
      isEqual = true; 
     } else { 
      isEqual = false; 
     } 
     return isEqual; 
    } 
} 

나는 당신이 말할 미안 해요 테스트 클래스

public class testClass extends RationalNumbers { 

    public static void main(String[] args) { 
     setNumerator(5); 
     setDenominator(10); 
     System.out.println("Equal: " + isEqual()); 
     System.out.println("Numerator: " + getNumerator()); 
     // etc... 
    } 
} 
+1

당신은 1) 추상 클래스의 구체적인 하위 클래스를 생성해야합니다. 2) 메소드를 호출 할 수있는 구체적인 클래스의 객체를 생성해야합니다. (위의 코드에서 실패한 부분이 있습니다.) 가장 중요한 3)는 intro-to java-tutorials를 다시 읽습니다. 다시 배우는 것이 많지만 근면과 노력으로 성공할 수 있습니다. –

+0

고마워, 결국 알아낼거야;) – Meowbits

+0

당신은 분명하지만이 물건을 추측하려고하지는 않을 것이므로 반드시 좌절로 이어질 것입니다. 자습서를 다시 읽고 처음에 걷고, 실행 한 다음 비행하십시오. –

답변

1

하지만 유리수에 대한 추상화를 만드는에서 당신의 시도는 모든면에서 잘못된 것입니다. 올바르지 않습니다. . 그 방법들 중 올바른 것은 없습니다 : 더하기, 빼기, 곱하기, 나누기, isEqual - 모두 완전히 틀립니다.

equals() - hashCode()을 무시 하시겠습니까? isEqual()은 좋은 아이디어 였다고 생각하니?

올바르게 수행하는 방법의 예는 this을 참조하십시오.

+0

감사합니다. 나는 무엇을하고 있었는지 확신하지 못했습니다. 이 링크는 저에게 많은 질문에 답할 것입니다. – Meowbits

관련 문제