设计一个名为Triangle的类来扩展GeometricObject类。该类包括:

  • 三个名为side1、side2和side3的double数据域表示这个三角形的三条边,他们的默认值是1.0.
  • 一个无参构造方法创建默认的三角形。
  • 一个能创建带指定side1,side2和side3的三角形构造方法。
  • 所有三个数据域的访问器方法。
  • 一个名为getArea()的方法返回这个三角形的面积。
  • 一个名为getPerimeter()的方法返回这个三角形的周长
  • 一个名为toString()的方法返回这个三角形的字符串描述。

画出Triangle类和GeometricObject类的UML图,并实现这些类。编写一个测试程序,体式用户输入三角形的三条边、颜色以及一个Boolean值表明该三角形是否填充。程序应该使用户输入创建一个具有这些边并设置color和filled属性的三角形。程序应该显示面积、边长、颜色以及表明是否填充的真或者假的值。

Triangle类的UML图:
GeometricObject类的UML图:
测试程序代码:

package abc;import java.util.Scanner;
//Triangle类
public class Triangle extends GeometricObject{private double side1;private double side2;private double side3;public Triangle(){this.side1=1;this.side2=1;this.side3=1;}public Triangle(double newSide1,double newSide2,double newSide3) {this.side1=newSide1;this.side2=newSide2;this.side3=newSide3;}public double getSide1() {return side1;}public double getSide2() {return side2;}public double getSide3() {return side3;}public double getArea() {double P=(this.side1+this.side2+this.side3)/2;double S=Math.sqrt(P*(P-this.side1)*(P-this.side2)*(P-this.side3));return S;}public double getPerimeter() {return this.side1+this.side2+this.side3;}public String toString() {return "Triangle:side1 = "+this.side1+" side2 = "+this.side2+" side3 = "+this.side3;}public static void main(String[] args) {// TODO Auto-generated method stubdouble side1,side2,side3;String color;boolean filled;Scanner input = new Scanner(System.in);System.out.println("请输入三角形的三条边:");side1=input.nextDouble();side2=input.nextDouble();side3=input.nextDouble();System.out.println("请输入三角形的颜色:");color=input.next();System.out.println("请输入一个bool值表面该三角形是否填充:");filled=input.hasNext();Triangle a = new Triangle(side1,side2,side3);a.setColor(color);a.setFilled(filled);System.out.println("面积为:"+a.getArea()+"边长为:"+a.getPerimeter()+"颜色为:"+a.getColor()+"是否填充:"+a.isFilled());}
}
package abc;
//GeometricObject类
public class GeometricObject {private String color="white";private boolean filled;private java.util.Date dateCreated;public GeometricObject(){dateCreated=new java.util.Date();}public 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 isFilled(){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;}
}

测试程序结果:

设计一个名为Triangle的类来扩展GeometricObject类。相关推荐

  1. Java黑皮书课后题第11章:11.1(Triangle类)设计一个名为Triangle的类来继承GeometricObject类。该类包括:

    画出Triangle类和GeometricObject类的UML图,并实现这些类.编写一个测试程序,提示用户输入三角形的三条边.颜色以及一个boolean值表明该三角形是否填充.程序需要根据输入创建一 ...

  2. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  3. Java黑皮书课后题第10章:*10.10(Queue类)10.6节给出一个Stock类。设计一个名为Queue的类用于存储整数。像栈一样,队列保存元素。在栈中,元素后进先出。队列中元素先进先出

    10.10(Queue类)10.6节给出一个Stock类,设计一个名为Queue的类用于存储整数 题目 程序 破题 代码 Test10.java Test10_Queue.java UML 题目 程序 ...

  4. Java黑皮书课后题第10章:***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序。设计一个名为Tax类,该类包含下面的实例数据域

    ***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序.设计一个名为Tax类,该类包含下面的实例数据域 题目 程序解释 代码 Test8.java Test8_Tax.jav ...

  5. Java黑皮书课后题第10章:10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点

    10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点 题目 程序 代码 Test4.java Test4_MyPoint.java 运行实例 UML 题目 程序 ...

  6. Java黑皮书课后题第10章:10.3(MyInteger类)设计一个名为MyInteger的类

    10.3(MyInteger类)设计一个名为MyInteger的类 题目 程序说明 代码 Test3.java Test3_MyInteger.java 运行实例 UML 题目 程序说明 测试程序:T ...

  7. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

  8. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  9. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类

    Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...

  10. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

最新文章

  1. anaconda怎么运行python程序_第一个python程序,从安装python环境到人生第一个py脚本运行全过程...
  2. 面试题整理12 求字符串括号最大深度子串
  3. Ibatis的类型处理器TypeHandler解析
  4. Android进阶知识:绘制流程(上)
  5. 如何给SAP云平台的账号分配Leonardo机器学习服务的实例
  6. 骆驼和春天的Drools决策表
  7. Python爬虫_乱码、转码
  8. 你听过哪些匪夷所思的故事?
  9. selenium课程笔记2--selenium操作chrome浏览器
  10. 1.3 - 字典练习题
  11. 精灵3P+Pix4D简单航测详细应用教程
  12. Computer Shader的理解记录
  13. maven仓库如何加载瀚高数据库JDBC驱动
  14. 中国AI独角兽新增一员:这家公司获得10亿元C轮融资 估值达到12亿美金
  15. “你写公众号有啥用啊?还没我摊煎饼赚得多呢!”
  16. Premiere Pro CS4\CS5\CS6\CC2015\CC2017\CC2018\CC2019软件安装教程
  17. 计算机论文的技术路线图,怎么写好论文开题报告技术路线流程图
  18. 小程序中让后面的View覆盖到上一个view中
  19. 建筑安全检查标准怎么计算机,建筑施工安全检查标准评分 怎么算
  20. 软件测试49个必问面试题合集+答案

热门文章

  1. freecodecamp小项目---个人网站
  2. (10)持有至到期投资的初始计量
  3. html5静默打印_Chrome 静默打印及其它启动参数
  4. Spring RPC 入门学习(3)-获取Student对象
  5. python天气查询系统有什么知识点_Python爬虫系列:使用selenium+Edge查询指定城市天气情况...
  6. 【微服务 Spring Cloud 2】为什么90%的开发者放弃传统的技术架构,而选择微服务?
  7. js封装 Ajax ——常用工具函数
  8. selenium:周杰伦歌词
  9. Go全栈面试题(5) -网络编程面试题
  10. Skr-Eric的Django课堂(三)——Django的模板的继承和模型