Java实验(13) 正八边形类
来源:互联网 发布:windows 10 multiple 编辑:程序博客网 时间:2024/05/20 16:10
写一个正八边形类Octagon,要求从课本的GeometricObject类继承,并实现 Comparable和 Cloneable接口。
写一个测试类,测试Octagon类的所有可用方法。
abstract class GeometricObject { private String color = "White"; private boolean filled; private java.util.Date dateCreated; protected GeometricObject(){ dateCreated = new java.util.Date(); } protected GeometricObject(String color, boolean filled){ dateCreated = new java.util.Date(); this.color=color; this.filled=filled; } public String getColor(){ return color; } public void setColor(String color){ this.color=color; } public boolean getFilled(){ return filled; } public void setFilled(boolean filled){ this.filled=filled; } public java.util.Date getDateCreated(){ return dateCreated; } public String toString(){ return "created on "+dateCreated+"\ncolor: "+color+" and filled: "+filled; } public abstract double getArea(); public abstract double getPerimeter();}class Octagon extends GeometricObject implements Cloneable,Comparable<Octagon>{ private double r; public Octagon(){} public Octagon(double r){ this.r=r; } public Octagon(double r,String color,boolean filled){ this.r=r; setColor(color); setFilled(filled); } public double getR(){ return r; } public void setRadius(double r){ this.r=r; } public double getArea(){ return (2+2*Math.sqrt(2))*r*r; } public double getPerimeter(){ return 8*r; } @Override //覆盖clone()方法 public Object clone(){ try{ Octagon octagonClone=(Octagon)super.clone(); return octagonClone; } catch(CloneNotSupportedException ex){ return null; } } @Override //Implement the compareTo method defined in Comparable public int compareTo(Octagon o){ if(getArea()>o.getArea()) return 1; else if(getArea()<o.getArea()) return -1; else return 0; } }public class TestOctagon { public static void main(String[] args) { Octagon o1=new Octagon(1,"white",true); Octagon o2=new Octagon(2,"black",false); Octagon o3=(Octagon)o1.clone(); System.out.println("o1:"); System.out.println(o1.toString()); System.out.println("o1周长"+o1.getPerimeter()); System.out.println("o1边长"+o1.getR()); System.out.println("o1面积"+o1.getArea()); System.out.println(); System.out.println("o2:"); System.out.println(o2.toString()); System.out.println(); System.out.println("o3:"); System.out.println(o3.toString()); System.out.println(); System.out.println("o1与o2比较:"); System.out.println(o1.compareTo(o2)); System.out.println(); System.out.println("o3由o1拷贝而来:"); System.out.println("o3周长"+o3.getPerimeter()); System.out.println("o3边长"+o3.getR()); System.out.println("o3面积"+o3.getArea()); System.out.println(); System.out.println("改变o3的颜色,将o3与o1颜色对比"); o3.setColor("Red"); System.out.println("o3的颜色"+o3.getColor()); System.out.println("o1的颜色"+o1.getColor()); }}
0 0
- Java实验(13) 正八边形类
- css做正八边形
- css3clip-path绘制正八边形
- 用A4折出正方形,等边三角形,正八边形,正六边形,正五边形,正七边形
- 第11周-八边形Octagon类
- java实现正三角
- java正序排序
- [Java] 实验13
- Java 实验:常用类
- Java类初始化实验
- JAVA常用类之——正测表达式
- 【正完成】java 反射一个包下的所有类
- JAVA人才大连正流行
- java中打印正金字塔
- Java--循环,正三角、九九乘法
- Java 实验6 集合类
- Java实验(6) 二次方程类
- Java实验(8) Location类
- Shiro 2 Subject的创建
- 解决读取文件乱码问题
- python Crypto模块安装
- SonarQube代码质量管理平台安装与使用
- Android TouchEvent事件传递机制
- Java实验(13) 正八边形类
- logback使用
- 学习笔记
- centos添加防火墙端口
- combobox tableview tablewidget 单选按钮 美化
- 配置sonar、jenkins进行持续审查
- android TextView不用ScrollViewe也可以滚动的方法
- Leetcode no. 171
- 【商业逻辑分析】之二:为什么说在天猫、京东等开店的商家大部分都面临危机?