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

如何实现带SET/GET方法的自定义Rectangle类?

实现带get/set方法的自定义Rectangle类

没问题,我已经帮你把需要的get/set方法补上了,还加了简单的参数校验避免非法的长宽值,同时写了测试代码来验证功能。下面是完整的实现:

class Rectangle {
    // 私有成员变量,保证封装性
    private double length;
    private double width;

    // 计算面积的方法
    public double calculateArea() {
        return length * width;
    }

    // 计算周长的方法
    public double calculatePerimeter() {
        return 2 * (length + width);
    }

    // 长的set方法,添加参数校验
    public void setLength(double length) {
        if (length > 0) {
            this.length = length;
        } else {
            System.out.println("长度必须大于0,设置失败");
        }
    }

    // 长的get方法
    public double getLength() {
        return this.length;
    }

    // 宽的set方法,添加参数校验
    public void setWidth(double width) {
        if (width > 0) {
            this.width = width;
        } else {
            System.out.println("宽度必须大于0,设置失败");
        }
    }

    // 宽的get方法
    public double getWidth() {
        return this.width;
    }

    public static void main(String[] args) {
        // 创建第一个Rectangle对象
        Rectangle rect1 = new Rectangle();
        rect1.setLength(5.0);
        rect1.setWidth(3.0);
        System.out.println("矩形1的长:" + rect1.getLength());
        System.out.println("矩形1的宽:" + rect1.getWidth());
        System.out.println("矩形1的面积:" + rect1.calculateArea());
        System.out.println("矩形1的周长:" + rect1.calculatePerimeter());

        // 创建第二个Rectangle对象
        Rectangle rect2 = new Rectangle();
        rect2.setLength(8.5);
        rect2.setWidth(4.2);
        System.out.println("\n矩形2的长:" + rect2.getLength());
        System.out.println("矩形2的宽:" + rect2.getWidth());
        System.out.println("矩形2的面积:" + rect2.calculateArea());
        System.out.println("矩形2的周长:" + rect2.calculatePerimeter());

        // 测试非法值设置
        Rectangle invalidRect = new Rectangle();
        invalidRect.setLength(-2.0);
    }
}

关键部分说明:

  • 封装性处理:把length和width设为private,外部无法直接修改,只能通过我们提供的set方法操作,保证数据安全性
  • set方法的参数校验:添加了判断逻辑,确保设置的长宽是正数,避免计算出无意义的面积/周长
  • get方法:提供对外获取长宽的接口,方便在需要的时候读取这些属性值
  • 测试代码:在main方法里创建了两个正常的矩形对象,演示了set/get方法的使用,同时测试了非法值的情况

运行这段代码后,你就能看到两个矩形的长宽、面积和周长的输出,同时非法值设置会给出提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:58:36