2016-10-19 3 views
-2

im пытается создать класс 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; 
    } 
} 

ошибки я получаю логический наклоняет быть преобразована в два раз

найти ошибочные символы

и нет подходящего конструктора найден для circleClass

им новый класс решений объектов, так что у меня нет idead что означает последняя ошибка. спасибо за помощь

+0

1. 'boolean calcArea', вы возвращаете' area', 'double', но метод ожидает' boolean' return. 2. Ваш параметр называется 'area', а не' inArea'. то же самое для 'diam' и' inDiameter'. Также 'getDiameter' - это метод, но вы вызываете его как доступную переменную. вы забыли паратезис 'getDiameter()'. 3. Нет конструктора 'CircleClass (int, double)', поэтому ваш метод clone не может создавать и возвращать новый экземпляр там. Либо создайте, либо используйте один из существующих. 'equals (Object inObject)' не имеет 'return', пока он ожидает' return'. – SomeJavaGuy

ответ

0
  1. Ваша функция boolean calcArea(int diameter) возвращает boolean. Должно быть просто double

  2. Вы не создали конструктор, как этот public CircleClass (int diameter, gouble area) {}

  3. В Java это лучше писать { после () (не из новой линии)

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

    этой функции сеттера верно. Посмотрите на свои и исправьте других.

Есть больше ошибок, но попытайтесь исправить их.