编写一个封装圆形概念的类,假设圆形具有以下属性:表示圆形中心的Point和圆形半径(整数)。包括构造函数,访问器和修改器,以及toString和equals方法。还包括返回圆的周长(2 * PI * radius)和面积(PI * radius ^ 2)的方法。

import java.awt.*;


public class Circle {

    private int radius;

    public Circle() {

        radius = 1;
    }

    public Circle(int x, int y, int r) {
        super(x, y, c);
        radius = r;
    }

    public int getRadius() {
        return radius;
    }

    public double getArea() {
        return Math.PI * radius * radius;
    }

    public double getPerimeter() {
        return 2 * Math.PI * radius;
    }
}


我可以做到这一点,我对在类中添加点构造函数,访问器和增变器感到有些困惑。

看起来像这样吗?

  protected int x, y;

  public point() {

      setPoint(0,0);

  }

  public point(int coordx, int coordy) {
      setPoint(coordx,coordy);
  }

  public void setPoint(int coordx, int coordy) {
      x = coordx;
      y = coordy;
  }
  public int getX() {
      return x;
  }

  public int getY() {
      return y;
  }

  public String toPrint() {
      return "[" + x + "," + y + "]";
  }

  }


是否可以将两者合并为1类?我试了一下,其中的每一行都有一个错误,说Circle没有返回类型。任何见识都会成为回报。再次感谢你们。

最佳答案

您正在谈论在单个类中具有多个对象的构造函数。那是不可能的。 Java认为public point()是没有返回类型的方法,因此在语法上是错误的。

您无需为重点课程。 Java已经提供了java.awt.Point。只需将Point的类级别字段添加到您的Circle类中,就可以了。

Circle然后看起来像这样:

public class Circle {

    private int radius;
    private Point point;

    public Circle() {
        point = new Point(0, 0);
        radius = 1;
    }

    public Circle(int x, int y, int r) {
        point = new Point(x, y);
        radius = r;
    }

    public int getRadius() {
        return radius;
    }

    public double getArea() {
        return Math.PI * radius * radius;
    }

    public double getPerimeter() {
        return 2 * Math.PI * radius;
    }
}

10-08 08:18
查看更多