第11周-八边形Octagon类

问题及代码:

/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:Octagon.java
*作    者:单昕昕
*完成日期:2015年11月15日
*版 本 号:v1.0
*问题描述:Octagon八边形。
*程序输入:边长。
*程序输出:面积和周长。
*/
//GeometricObject类
class GeometricObject {}

//Octagon类
class Octagon extends GeometricObject implements Cloneable,ComparableOctagon八边形
{
    private double length;
    private double area;
    public Octagon(double l)//初始化
    {
        this.length=l;
    }
    public double getArea()//面积
    {
        return ((2+4/Math.sqrt(2))*length*length);
    }
    public double getPerimeter()//周长
    {
        return (8.0*length);
    }
    public Object Clone() throws CloneNotSupportedException//实现object类中的clone方法
    {
        return super.clone();
    }
    public int compareTo(Object o)//实现object类中的compare方法
    {
        if(area>((Octagon)o).area)
            return 1;
        else if(area<((Octagon)o).area)
            return -1;
        else
            return 0;
    }
}

public class Test
{
    public static void main(String args[]) throws CloneNotSupportedException
    {
        Octagon Octagon1=new Octagon(5);
        Octagon Octagon2=new Octagon(3.3);
        Octagon Octagon3=(Octagon) Octagon2.Clone();
        System.out.println(Octagon1.compareTo(Octagon3));
        GeometricObject[]  geometricObject = {new Octagon(5)};
        for (GeometricObject Object : geometricObject)//枚举类型
        {
            if(Object instanceof Octagon)//检查是否为对象
            {
                Octagon o =	(Octagon) Object;
                System.out.println("The area is "+o.getArea());
                System.out.println("The area is "+o.getPerimeter());
            }
        }
    }
}

运行结果:



知识点总结:

扩展GeometricObject类并实现Comparable和Cloneable接口。


学习心得:

本来是按题目要求的实现Comparable和Cloneable接口的部分,结果题目里面的要求命名在IDE里是错的。。又按着编译提示修改按着书上的一个House例子写才对。。

(⊙o⊙)…我这个程序好像CompareTo的实现测试是错了的,改不出来。。求路过看到的大神萌指点迷津~~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值