用java编写一个名为Square(正方形)的类,并按要求完成如下封装

要求:(1)一个名为side的double私有数据域表示三条边;(2)一个能创建带指定参数参数s1的构造方法;(3)实现Comparable,Cloneable接口。(5... 要求:(1) 一个名为side的double私有数据域表示三条边;

(2) 一个能创建带指定参数参数s1的构造方法;

(3) 实现Comparable,Cloneable接口。

(5) 编写方法,求Square(正方形)类对象的周长,返回double类型,方法公有。

(6) 编写方法,求Square(正方形)类对象数组中所有对象的周长和,方法为公有静态。

(7) 编写测试程序,分别创建边长1-10的Square对象,调用方法(6),显示10个对象的周长;创建边长为20的Square对象,使用Clone方法创建一新对象,并使用compareTo方法比较两个对象。
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
gdmmd
推荐于2018-03-28 · TA获得超过1279个赞
知道大有可为答主
回答量:1581
采纳率:66%
帮助的人:1013万
展开全部

随便写写    未测试

package com.leejiliang.HomeworkDemo2;

public class Test {

    public static void main(String[] args) {
        Square[] squares = new Square[10];
        for (int i = 0, k = squares.length; i < k; i++) {
            squares[i] = new Square(i + 1);
        }

        System.out
                .println("所有Square的总周长是:" + Square.getTotalPerimeter(squares));

        Square sq1 = new Square(20);
        Square sq2 = null;
        try {
            sq2 = (Square) sq1.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }

        System.out.println("sq1"
                + (sq1.compareTo(sq2) == 1 ? ">"
                        : (sq1.compareTo(sq2) == 0 ? "=" : "<")) + "sq2");

    }
}

class Square implements Cloneable, Comparable<Square> {
    private double side;

    public Square(double s1) {
        this.side = s1;
    }

    public double getSide() {
        return side;
    }

    public void setSide(double side) {
        this.side = side;
    }

    @Override
    public int compareTo(Square o) {
        if (this.side > o.getSide()) {
            return 1;
        } else if (this.side < o.getSide()) {
            return -1;
        } else {
            return 0;
        }
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    public double getPerimeter() {
        return side * 4;
    }

    public static double getTotalPerimeter(Square[] squares) {
        double totalPerimeter = 0.0;
        for (int i = 0, k = squares.length; i < k; i++) {
            totalPerimeter += squares[i].getPerimeter();
        }
        return totalPerimeter;
    }

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式