You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何使用3参数Circle构造器设置radius和center两个实例变量

你当前的代码存在两处不符合需求的问题:

  1. 继承逻辑冗余:你已经在Circle类中声明了Point类型的center属性存储圆心,不需要再继承Point类
  2. 构造器未完成center属性赋值:现有构造器仅调用父类Point的构造方法给父类的x、y属性赋值,你自定义的center属性始终为null,运行时调用会触发空指针异常

修正后符合需求的代码

// 前提:你的Point类存在两个double参数的构造方法,用于初始化x、y坐标
public class Circle
{
  private double radius;
  private Point center;

  // 3个参数的Circle构造器,完全匹配需求
  public Circle(double x, double y, double radius)
  {
    // 用传入的x、y参数构造Point对象,赋值给center属性
    this.center = new Point(x, y);
    // 给radius属性赋值
    this.radius = radius;
  }

  // 下方可补充getter、setter、计算面积周长等自定义方法
}

如果你确实需要保留Circle继承Point的设计

如果UML要求Circle必须继承Point,那么不需要额外声明center属性,直接使用继承自父类的x、y作为圆心坐标即可,修正代码如下:

public class Circle extends Point
{
  private double radius;

  public Circle(double x, double y, double radius)
  {
    // 调用父类Point构造方法初始化圆心坐标
    super(x, y);
    this.radius = radius;
  }
}

你参考的UML图如下:
UML图

内容的提问来源于stack exchange,提问作者GluhaiaMuha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:27:00