Program:按照下面要求完成类的设计

(1)设计一个平面图形抽象类和一个立体图形抽象类,提供该类对象公共的方法和属性。

(2)修改项目三中第2题中所设计的球类、圆柱类,圆锥类、矩形类、三角形类、圆类,分别继承平面图形抽象类和立体图形抽象类。

(3)运行项目三中第2题中的测试方法,进行测试。

Description:

1、在abstractclass包下分别定义了平面图像抽象类Planum和立体图形抽象类Soild。

2、在entity包中,创建了实体类:Triangle(三角形),Rectangle(矩形),Cylinder(圆柱体),Sphere(球体)。

3、在main包中定义测试类TestDemo,进行测试。

    具体代码如下:

抽象类

 1 /*
 2  * Description:定义平面图形的抽象类
 3  *
 4  * Written By:Cai
 5  *
 6  * Date Written:2017-10-16
 7  *
 8  * */
 9
10
11 package abstractclass;
12
13 public abstract class Planum {
14
15     private double sideLength;        //边长
16     private double height;            //高
17
18     //定义构造方法
19     public Planum(double sideLength,double height) {
20
21         this.sideLength = sideLength;
22         this.height = height;
23     }
24
25     //定义setter()和getter()方法
26
27     public double getSideLength() {
28         return sideLength;
29     }
30
31     public void setSideLength(double sideLength) {
32         this.sideLength = sideLength;
33     }
34
35     public double getHeight() {
36         return height;
37     }
38
39     public void setHeight(double height) {
40         this.height = height;
41     }
42
43     //抽象抽象方法,求得面积
44     public abstract double getArea();
45
46
47 }

 1 /*
 2  * Description:定义立体图形的抽象类
 3  *
 4  * Written By:Cai
 5  *
 6  * Date Written:2017-10-16
 7  *
 8  * */
 9
10 package abstractclass;
11
12 public abstract class Solid {
13
14     private double r;            //声明半径
15     private final double PI = 3.14;    //声明π
16
17     //定义构造方法
18     public Solid(double r) {
19
20         this.r = r;
21     }
22
23     //定义sette()和getter()方法
24
25     public double getR() {
26         return r;
27     }
28
29     public void setR(double r) {
30         this.r = r;
31     }
32
33     public double getPI() {
34
35         return this.PI;
36     }
37
38     //声明抽象方法,取得表面积
39     public abstract double getArea();
40     //声明抽象方法,取得体积
41     public abstract double getSolid();
42
45 }

实体类:

 1 /*
 2  * Description:定义圆柱的实体类
 3  *
 4  * Written By:Cai
 5  *
 6  * Date Written:2017-10-16
 7  *
 8  * */
 9
10 package entity;
11
12
13 import abstractclass.Solid;
14
15 public class Cylinder extends Solid {
16
17     private double height;        //声明圆柱体的高度
18
19     //定义构造方法
20     public Cylinder(double r,double height) {
21         super(r);
22         this.height = height;
23     }
24
25     //实现父类抽象方法,求得圆柱的表面积
26     public double getArea() {
27
28         return 4 * this.getPI() * Math.pow(this.getR(), 2);
29     }
30
31     //实现父类抽象方法,求得圆柱的体积
32     public double getSolid() {
33
34         double result =  this.getPI() * Math.pow(this.getR(), 2) * this.height;
35         return Math.round(result*100.0) / 100.0;
36     }
37 }

 1 /*
 2  * Description:定义球的实体类
 3  *
 4  * Written By:Cai
 5  *
 6  * Date Written:2017-10-16
 7  *
 8  * */
 9
10 package entity;
11
12 import abstractclass.Solid;
13
14 public class Sphere extends Solid {
15
16     //定义构造方法
17     public Sphere(double r) {
18         super(r);
19     }
20
21     //实现父类抽象方法,求得球的表面积
22     public double getArea() {
23
24         return 4 * this.getPI() * Math.pow(this.getR(), 2);
25     }
26
27     //实现父类抽象方法,求得球的体积
28     public double getSolid() {
29
30         return this.getPI() * Math.pow(this.getR(), 3);
31     }
32
33 }

 1 /*
 2  * Description:定义矩形实体类
 3  *
 4  * Written By:Cai
 5  *
 6  * Date Written:2017-10-16
 7  *
 8  * */
 9
10 package entity;
11
12 import abstractclass.Planum;
13
14 public class Rectangle extends Planum {
15
16     //定义构造方法
17     public Rectangle(double sideLength, double height) {
18
19         super(sideLength, height);
20     }
21
22     //实现父类的抽象方法,求得矩形面积
23     public double getArea() {
24
25         return this.getHeight() * this.getSideLength();
26     }
27
28
29 }

 1 /*
 2  * Description:定义矩形实体类
 3  *
 4  * Written By:Cai
 5  *
 6  * Date Written:2017-10-16
 7  *
 8  * */
 9
10 package entity;
11
12 import abstractclass.Planum;
13
14 public class Triangle extends Planum {
15
16     //定义构造方法
17     public Triangle(double sideLength, double height) {
18         super(sideLength, height);
19     }
20
21     //实现父类的抽象方法,求得三角形面积
22     public double getArea() {
23
24         return this.getHeight() * this.getSideLength() / 2;
25     }
26
27
28 }

测试类

 1 /*
 2  * Description:定义测试类
 3  *
 4  * Written By:Cai
 5  *
 6  * Date Written:2017-10-16
 7  *
 8  * */
 9
10 package main;
11
12 import entity.Cylinder;
13 import entity.Sphere;
14 import entity.Triangle;
15 import abstractclass.Planum;
16 import abstractclass.Solid;
17
18 public class TestDemo {
19
20     public static void main(String args[]) {
21
22         //实例化平面图形的抽象类对象
23         Planum tri = new Triangle(10, 10);           //三角形
24         Planum rec = new entity.Rectangle(10,20);    //矩形
25
26         //实例化立体图形的抽象类对象
27         Solid sph = new Sphere(1);                   //球体
28         Solid cyl = new Cylinder(1, 10);             //圆柱
29
30         //打印平面图形的面积
31         System.out.println( "三角形的面积:" + tri.getArea() );
32         System.out.println( "矩形的面积:" + rec.getArea() );
33
34         System.out.println( "---------------风骚的Java分割线-----------------" );
35
36         //打印球体的表面积和体积
37         System.out.println( "球体的表面积:" + sph.getArea() );
38         System.out.println( "球体的体积:" + sph.getSolid() );
39
40         System.out.println( "---------------风骚的Java分割线-----------------" );
41
42         //打印圆柱体的表面积和体积
43         System.out.println( "圆柱体的表面积:" + cyl.getArea() );
44         System.out.println( "圆柱的体积:" + cyl.getSolid() );
45
46     }
47
48 }

转载于:https://www.cnblogs.com/caizhen/p/7684235.html

Java实验项目三——平面图形和立体图形抽象类相关推荐

  1. 实验项目三:基于A*搜索算法迷宫游戏开发

    基于A*搜索算法迷宫游戏开发 由于这一个不太完美,重新写了一个基于python的程序. 一.前言 二.基本流程 三.界面设计 四.迷宫随机生成 五.移动迷宫与尾迹生成 六.A*迷宫自动寻路 七.附加 ...

  2. Java实验项目二——打印某年某月日历

    Program:打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一), 要 求: (1)编写一个方法判断闰年: (2)编写一个方法判断某年某月有多少天: (3)编写一个方法计算 ...

  3. java实验项目代码_java web 期末项目实验源码20套,自用学习非常不错!

    分享java web 期末项目实验源码20套,自用学习非常不错! 我自己也从里面学习到了很多东西! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动 ...

  4. Java实验项目二打印万年历

    package _____; import java.util.Scanner; public class wnl//万年历主类 {     public static void main(Strin ...

  5. C++程设实验项目三:黑白棋与基于UCT算法的AI

    在这篇博客里,我将总结一下在这次实验中学到的UCT算法实现原理. 首先是参考文章: https://blog.csdn.net/u014397729/article/details/27366363 ...

  6. java实验Java面向对象编程_Java实验项目 面向对象编程.doc

    Java实验项目 面向对象编程 Java实验项目二 面向对象编程 第1部分 类与对象 [实验目的] 熟悉Java面向对象程序设计的基本思想. 掌握类与对象的定义及使用方法. 掌握package语句与i ...

  7. java实验三_JAVA实验三及总结

    JAVA第五周作业 Java实验报告三 第一题 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) (1).统计该字符 ...

  8. 项目三(2)——抽象类

    按照下面要求完成类的设计 (1)设计一个平面图形抽象类和一个立体图形抽象类,提供该类对象公共的方法和属性. (2)修改项目三中第2题中所设计的球类.圆柱类,圆锥类.矩形类.三角形类.圆类,分别继承平面 ...

  9. java Web项目如何windows桌面运行?

    一.前言 前几天一个朋友找我,说有一个 数据接口开发 能够页面展示的小项目,能够在本地运行就行,不需要放到网上,问我这边可不可以做,本来想 婉言谢绝 的,但是听到说,可以给点 辛苦费,于是想到了 李白 ...

最新文章

  1. 给Linux添加新用户,新建用户,新建帐号
  2. Python open()函数用法详解
  3. eureka源码:开启服务注册
  4. Java8 lambda支持
  5. 在SSH框架中,如何得到POST请求的URL和参数列表
  6. 甲骨文严查Java授权,企业连夜删除JDK
  7. 一个浪漫又悲情的爱情故事...
  8. windows组件向导里没有internet 信息服务(iis) 的解决办法
  9. FreeSql (八)插入数据时指定列
  10. UIView类绘图出现错误提示
  11. mysql异常恢复工具_[MySQL异常恢复]mysql ibd文件恢复
  12. 63. 不同路径 II(JavaScript)
  13. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计:公告板(Billboard)技术
  14. 添加镜头光晕的正确方法
  15. 支付宝RAS密钥生成器SHAwithRSA1024_V1.0打开后窗口一闪而过迅速关闭的解决办法
  16. 什么是MVC模式??
  17. 统计学基础知识梳理(三)
  18. 马里兰大学 计算机视觉,马里兰大学信息系统排名2019年
  19. 第十六届北京师范大学程序设计竞赛决赛
  20. R语言定量方法:回归,虚拟变量和交互项,假设检验:F 检验、AIC 和 BIC分析学生成绩数据带自测题

热门文章

  1. linux startx无效_Linux使用startx不能进入图形界面解决方案
  2. 【Shell】Shell脚本中调用另一个脚本的三种方式(fork/exec/source)
  3. js字符与ascii码转换
  4. pyhton 将ASCII码转换为字符char(),将字符转换为ASCII码ord()
  5. 2013年MBA、MPA、MPAcc入学考试综合能力辅导教材
  6. 低成本成FS68001A、FS68003无线充SOC芯片
  7. photoshop快捷键大全
  8. c语言设计数独出题目及答案,c语言题目-数独-求大神解释题目意思和分析题目和代码知道...
  9. 西南大学2019春计算机作业答案,2019年西南大学作业答案[1175]《仪器分析》
  10. C语言C Prime总结(2-7章)