2025年八边形Octagan类(接口) (5 分)

八边形Octagan类(接口) (5 分)题目描述 编写一个名为 Octagon 的类 表示八边形 假设八边形八条边的边长都相等 它的面积可以使用下面的公式计算 面积 2 4 sqrt 2 边长 边长 请实现 Octagon 类 其实现了 Comparable lt

大家好,我是讯享网,很高兴认识大家。

题目描述:

编写一个名为Octagon的类,表示八边形。假设八边形八条边的边长都相等。它的面积可以使用下面的公式计算:

 面积 = (2 + 4 / sqrt(2)) * 边长 * 边长 

讯享网

请实现Octagon类,其实现了Comparable<Octagon>和Cloneable接口。

1 有一个私有变量double side ,表示八边形的边长。

2 构造函数Octagon(double side),初始化side。

3 为side添加getter和setter方法。

4 double getPerimeter()方法,计算周长。

5 double getArea()方法,计算面积。

6 实现Comparable接口的方法 public int compareTo(Octagon o);

如果当前对象的边长比参数o的边长大,返回1,小则返回-1,相等返回0。


讯享网

7 实现Cloneable接口的方法 protected Object clone()

编写一个测试程序,根据用户输入的浮点数作为边长,创建一个Octagon对象,然后显示它的面积和周长。使用clone方法创建一个新对象,并使用CompareTo方法比较这两个对象。

此题提交时将会附加裁判测试程序到被提交的Java程序末尾。

程序框架: 

讯享网程序按以下框架进行设计后提交: class Octagon implements Comparable<Octagon>,Cloneable{ …… @Override public int compareTo(Octagon o){ …… } @Override protected Object clone() { return this; } } 

 裁判测试程序样例:

public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); Octagon a1 = new Octagon(input.nextDouble()); System.out.printf("Area is %.2f\n", a1.getArea()); System.out.println("Perimeter is " + a1.getPerimeter()); Octagon a2 = (Octagon) a1.clone(); System.out.println("Compare the methods " + a1.compareTo(a2)); } } /* 请在这里填写答案 */ 

输入样例:

在这里给出一组输入。例如:

讯享网5 

输出样例:

在这里给出相应的输出。例如:

Area is 120.71 Perimeter is 40.0 Compare the methods 0 

整个代码答案如下:(如果帮助到了你,可以留下你的小赞赞吗?)

 (接口也得自己写上哦)

讯享网import java.util.Scanner; public class Main { public static void main(String[] args) { @SuppressWarnings("resource") Scanner input = new Scanner(System.in); Octagon a1 = new Octagon(input.nextDouble()); System.out.printf("Area is %.2f\n", a1.getArea()); System.out.println("Perimeter is " + a1.getPerimeter()); Octagon a2 = (Octagon) a1.clone(); System.out.println("Compare the methods " + a1.compareTo(a2)); } } /* 请在这里填写答案 */ @SuppressWarnings("hiding") //程序按以下框架进行设计后提交: interface Comparable<Octagon> { int compareTo(Octagon o); } interface Cloneable { Object clone(); } class Octagon implements Comparable<Octagon>,Cloneable{ // …… private double side; public Octagon(double side) { this.setSide(side); } public void setSide(double side) { this.side=side; } public double getSide() { return this.side; } public double getPerimeter() { return this.getSide()*8; } public double getArea() { return (2 + 4 / Math.sqrt(2)) * this.getSide() * this.getSide(); } @Override public int compareTo(Octagon o){ // …… if(this.getSide()>o.getSide()) return 1; else if(this.getSide()<o.getSide()) return -1; else if(this.getSide()==o.getSide()) return 0; return 0; } @Override public Object clone() { return new Octagon(side); } }

小讯
上一篇 2025-03-07 07:22
下一篇 2025-02-14 09:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122067.html