2016-10-19 7 views
-2

CircleClass 클래스를 만들려고 시도 중이지만 일부 오류가있어서 머리를 얻을 수 없습니다. 오류를 찾는 데 도움을받을 수 있습니까? 내가 얻을생성자, 접근 자 및 변형자를 사용하여 Circle 클래스를 만드는 중

import java.util.*; 
public final class CircleClass 
{ 
    //class fields 
    private int diameter; 
    private double area; 

    /*Default Constructor 
    *IMPORT none 
    *EXPORT address of new CircleClass object 
    *ASSERTION area 0 diameter 0 is default 
    */ 
    public CircleClass() 
    { 
     area = 0.0; 
     diameter = 0; 
    } 

    /*copy constructor 
    *IMPORT inCircle (CircleClass) 
    *EXPORT address of new CircleClass object 
    *ASSERTION creates an object with an identical object state as the import 
    */ 
    public CircleClass(CircleClass inCircleClass) 
    { 
     area = inCircleClass.getArea(); 
     diameter = inCircleClass.getDiameter(); 
    } 

    /*alternate constructor 
    *IMPORT inDiameter (integer) 
    *EXPORT address of new Circle object 
    *ASSERTION creates an object if imports are valid or fails otherwise 
    */ 
    public CircleClass (int inDiameter) 
    { 
     if (validateNumber (inDiameter)) 
     { 
      diameter = inDiameter; 
      area = calcArea (diameter); 
     } 
     else 
     { 
      throw new IllegalArgumentException("invalid value"); 
     } 
    } 
    /*SUB setArea 
    *IMPORT area (real) 
    *EXPORT none 
    *ASSERTION sets the area if import is valid 
    */ 
    public void setArea (double area) 
    { 
     if (area >= 0.0) 
     { 
      area = inArea; 
     } 
     else 
     { 
      throw new IllegalArgumentException("invalid area value"); 
     } 
    } 

    /*SUB setDiameter 
    *IMPORT inDiameter (integer) 
    *EXPORT none 
    *ASSERTION sets diater if valid 
    */ 
    public void setDiameter (int inDiameter) 
    { 
     if (validateNumber(inDiameter)) 
     { 
      diameter = inDiameter; 
     } 
     else 
     { 
      throw new IllegalArgumentException("invalid diameter"); 
     } 
    } 

    //ACCESSORS 
    public int getDiameter() 
    { 
     return diameter; 
    } 

    public double getArea() 
    { 
     return area; 
    } 
    //SUB equals 
    //IMPORT diameter 
    //EXPORT same (boolean) 
    //ASSERTION same = true if diameter is same as inDiameter 
    public boolean equals (int diameter) 
    { 
     boolean same = false; 
     if (diameter == inDiameter) 
     { 
      same = true; 
     } 
     return same; 
    } 

    //SUB equals 
    //IMPORT inObject 
    //EXPORT same (booleana) 
    public boolean equals (Object inObject) 
    { 
     boolean same = false; 
     if (inObject instanceof CircleClass) 
     { 
      CircleClass inCircle = (CircleClass) inObject; 
      same = (diameter == inCircle.getDiameter); 
     } 
    } 

    //SUB clone 
    //IMPORT none 
    //EXPORT cloneCircleClass (Object) 
    //ASSERTION returns cloned object of current object 
    public Object clone() 
    { 
     CircleClass cloneCircleClass; 
     cloneCircleClass = new CircleClass (diameter, area); 
     return cloneCircleClass; 
    } 
    //PRIVATE SUB validateNumber 
    //IMPORT inDiameter 
    //EXPORT valid 
    //ASSERTION number should be gtreater or equal to 0 
    private boolean validateNumber (int inDiameter) 
    { 
     return (inDiameter >= 0); 
    } 

    //SUB calcArea 
    //IMPORT inDiameter 
    //EXPORT area 
    //ASSERTION calculates area 
    private boolean calcArea (int diameter) 
    { 
     double radius, area; 
     radius = (double)diameter/2.0; 
     area = Math.PI * radius * radius; 
     return area; 
    } 
} 

오류는 부울

메신저 새로운 만들기 클래스는 그래서 더 idead이없는 개체를

및 circleClass

를 찾지 적절한 생성자 귀하의 오류를 찾는

을 두 배로 변환 할 수 질수있다 마지막 오류가 무엇을 의미하는지. 도움 주셔서 감사합니다

+0

1.'boolean calcArea','area','double'을 리턴하지만, 메소드는'boolean' 리턴을 기대합니다. 2. 당신의 매개 변수는'area'라고 불리지 만'inArea'는 아닙니다. 'diameter'와'inDiameter'도 마찬가지입니다. 또한'getDiameter'는 메소드이지만 액세스 가능한 변수처럼 호출하고 있습니다. 당신은 거기에 parathesis 'getDiameter()'을 잊어 버렸습니다. 3.'CircleClass (int, double)'생성자가 없으므로,'clone' 메소드는 거기서 새로운 인스턴스를 생성하고 리턴 할 수 없습니다. 하나를 만들거나 기존의 것을 사용하십시오. 'equals (Object inObject)'는'return'을 기대하는 동안'return'을 가지지 않습니다. – SomeJavaGuy

답변

0
  1. 사용자의 기능 boolean calcArea(int diameter)이 (가) 부울을 반환합니다. 당신은 {() (안 새로운 라인에서)

    public void setArea(double area) { 
        if (area >= 0.0) { 
         this.area = area; 
        } else { 
         throw new IllegalArgumentException("invalid area value"); 
        } 
    } 
    

    후이 세터 함수를 작성하는 것이 좋습니다 자바에서이 public CircleClass (int diameter, gouble area) {}

  2. 같은 생성자를 작성하지 않은 단지 double

  3. 해야한다 맞다. 너를보고 다른 사람들을 바로 잡아라.

더 많은 실수가 있지만이를 수정하십시오.