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

Java实现Shape接口的Rectangle类draw()方法如何使用构造传入的宽高绘制矩形

问题原因

你当前的实现有三处错误:

  • draw方法内部重新声明了局部变量height、width,直接覆盖了类的成员变量,所以永远只会用硬编码的3来绘制
  • 代码中混入了HTML转义字符(<、"),属于粘贴时的格式错误
  • 每行星号输出后额外加了空格,和预期输出不符

修复方法

替换你的draw方法为以下代码即可:

@Override
public void draw() {
    // 强转int适配循环计数要求,若不需要小数宽高可直接将成员变量改为int类型
    int rowCount = (int) this.height;
    int colCount = (int) this.width;
    for (int i = 0; i < rowCount; i++) {
        for (int j = 0; j < colCount; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
}

注意:由于你的成员变量宽高是double类型,上述代码做了int强转,会截断小数部分。如果需要支持小数宽高向上取整,可以将强转逻辑替换为(int) Math.ceil(this.height)即可。

修改完成后运行new Rectangle(4,5).draw()就会输出符合要求的5行、每行4个星号的矩形。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:09:03