当前位置: 首页 > 知识库问答 >
问题:

使用Point center在Java中创建一个Circle类?

郭远
2023-03-14

编写一个封装圆概念的类,假设圆具有以下属性:一个点表示圆的中心,圆的半径为整数。包括构造函数、访问器和赋值器以及toString和equals方法。还包括返回圆的周长(2*PI*半径)和面积(PI*半径^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 + "]";
  }

  }

是否可以将两者结合在一个类中?我试过了,它的每一行都有一个错误,说圆圈没有返回类型。任何见解都是可以回报的。再次感谢各位。

共有3个答案

越勇
2023-03-14

我会这样做的

import java.awt.Point;

public class Circle {

    private Point center;
    private int radius;

    public Circle(){
        this( new Point( 0, 0 ) );
    }

    public Circle( int x, int y, int radius ){
        this( new Point( x, y ), radius );
    }

    public Circle( Point center ){
        this( center, 1 );
    }

    public Circle( Point center, int radius ){   
        this.setCenter( center );
        this.radius = radius;
    }

    public int getRadius(){ return this.radius; }
    public Point getCenter(){ return this.center; }

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

    public void setCenter( int x, int y ){
        this.setCenter( new Point( x, y ) );
    } 

    public void setCenter( Point center ){
        this.center = center;
    }

    public boolean equals( Object o ){ 

        if ( o == this ){ return true; }
        if ( o == null || o.getClass() != this.getClass() ){ return false; }

        Circle c = (Circle) o;
        return ( o.radius == this.radius && o.center.equals( this.center ) );
    }

    public string toString(){
        return "Circle[" + this.center.toString() + ", " + this.radius + "]";
    }
}
易宣
2023-03-14

这里有一些代码,一个圆是一个点的延伸,它增加了一个半径

public class Point {
   public Point(int x, int y) {
      // .. set x and Y coord
   }

   // Getters and Setters
   public int getX() {
      return x;
   }

  public int getY() {
      return y;
  }

  public String toPrint() {
      return "[" + x + "," + y + "]";
  }
  // Your other Point methods...


  private int x = 0;
  private int y = 0;
}


public class Circle extends Point {
  int rad;

  public Circle (int x, int y, int radius) {
    super(x, y);
    rad = radius;
  }
  // Your other Circle methods
}

正如promise的那样:另一种没有扩展的方式可能是:

class Point {
  int x;
  int y;

  public Point (int x, int y) {
     this.x = x;
     this.y = y;
  }
  // Getter/Setters and other methods
}


public class Circle {

  Point centre = null;
  int radius = 0;

  public Circle(int x, int y, int rad) {
      centre = new Point(x, y);
      radius = rad;
  }
   // Your other Circle methods
}
贾兴学
2023-03-14

您所说的是在一个类中为多个对象提供构造函数。那是不可能的。Java认为公共点()是一个没有返回类型的方法,因此在语法上是不正确的。

你不需要为这一点上一节课。Java提供了Java。awt。已指向。只需将点的类级别字段添加到类中,就可以了。

然后,圆圈看起来像这样:

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;
    }
}
 类似资料:
  • 在创建应用之前,首先我们要做的是在你的git项目上将Dockerfile文件提交上去,并且生成一个Tag或releases版本。 Dockerfile 参考 FROM openjdk:latest COPY xxxx.jar /opt/app WORKDIR /opt/app CMD ["java", "xxx.jar"] 进入创建应用页面,填写基本信息 进入“创建项目”页面 项目英文名填写

  • 问题内容: 以root用户身份登录后,在 MySQL 命令行客户端中键入: 现在在 Java中 ,我使用驱动程序使用admin userid成功连接到数据库。 为什么插入命令有效,但授权命令却无法通过Java工作? 请帮忙。 问题答案: 在这里,您只能执行MySQL查询,但 不是MySQL查询,它只是MySQL的命令。

  • 问题内容: 假设我有一个名为的课程, 我想创建一个新的ArrayList,其值将为type 。 我的问题是:我该怎么做? 我不懂Java Api。 我尝试了这个: 问题答案: 您正在寻找Java泛型 这是一个教程http://docs.oracle.com/javase/tutorial/java/generics/index.html

  • 创建一个表示学生的实体类 Student,其中有学生姓名、性别和年龄信息。要求使用属性来表示学生信息,最终编写测试代码。 首先定义一个名为 Student 的类,代码如下: 在类中通过属性定义学生、性别和年龄,代码如下: 在上述代码中将学生性别属性 Sex 设置为 private 作用域。为了对该属性进行获取和设置,还需要编写 isSex 和 setSex 方法。代码如下: 在 Student 类

  • 在正方形应该移动的地方初始化。KeyListener继承自GameAssistant(JFrame是用KeyListener创建的) }

  • 我新安装了MongoDB 3.2,并尝试创建第一个抛出以下错误的用户。 “错误:无法添加用户:未经管理员授权执行命令” 我遵循mongoDB 3.2文档,https://docs.mongodb.org/manual/tutorial/enable-authentication/ 为了添加管理员,我尝试了以下代码,导致了上述错误 创建用户管理员。添加具有userAdminAnyDatabase角色