Java实验项目三——平面图形和立体图形抽象类
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实验项目三——平面图形和立体图形抽象类相关推荐
- 实验项目三:基于A*搜索算法迷宫游戏开发
基于A*搜索算法迷宫游戏开发 由于这一个不太完美,重新写了一个基于python的程序. 一.前言 二.基本流程 三.界面设计 四.迷宫随机生成 五.移动迷宫与尾迹生成 六.A*迷宫自动寻路 七.附加 ...
- Java实验项目二——打印某年某月日历
Program:打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一), 要 求: (1)编写一个方法判断闰年: (2)编写一个方法判断某年某月有多少天: (3)编写一个方法计算 ...
- java实验项目代码_java web 期末项目实验源码20套,自用学习非常不错!
分享java web 期末项目实验源码20套,自用学习非常不错! 我自己也从里面学习到了很多东西! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动 ...
- Java实验项目二打印万年历
package _____; import java.util.Scanner; public class wnl//万年历主类 { public static void main(Strin ...
- C++程设实验项目三:黑白棋与基于UCT算法的AI
在这篇博客里,我将总结一下在这次实验中学到的UCT算法实现原理. 首先是参考文章: https://blog.csdn.net/u014397729/article/details/27366363 ...
- java实验Java面向对象编程_Java实验项目 面向对象编程.doc
Java实验项目 面向对象编程 Java实验项目二 面向对象编程 第1部分 类与对象 [实验目的] 熟悉Java面向对象程序设计的基本思想. 掌握类与对象的定义及使用方法. 掌握package语句与i ...
- java实验三_JAVA实验三及总结
JAVA第五周作业 Java实验报告三 第一题 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) (1).统计该字符 ...
- 项目三(2)——抽象类
按照下面要求完成类的设计 (1)设计一个平面图形抽象类和一个立体图形抽象类,提供该类对象公共的方法和属性. (2)修改项目三中第2题中所设计的球类.圆柱类,圆锥类.矩形类.三角形类.圆类,分别继承平面 ...
- java Web项目如何windows桌面运行?
一.前言 前几天一个朋友找我,说有一个 数据接口开发 能够页面展示的小项目,能够在本地运行就行,不需要放到网上,问我这边可不可以做,本来想 婉言谢绝 的,但是听到说,可以给点 辛苦费,于是想到了 李白 ...
最新文章
- 给Linux添加新用户,新建用户,新建帐号
- Python open()函数用法详解
- eureka源码:开启服务注册
- Java8 lambda支持
- 在SSH框架中,如何得到POST请求的URL和参数列表
- 甲骨文严查Java授权,企业连夜删除JDK
- 一个浪漫又悲情的爱情故事...
- windows组件向导里没有internet 信息服务(iis) 的解决办法
- FreeSql (八)插入数据时指定列
- UIView类绘图出现错误提示
- mysql异常恢复工具_[MySQL异常恢复]mysql ibd文件恢复
- 63. 不同路径 II(JavaScript)
- 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计:公告板(Billboard)技术
- 添加镜头光晕的正确方法
- 支付宝RAS密钥生成器SHAwithRSA1024_V1.0打开后窗口一闪而过迅速关闭的解决办法
- 什么是MVC模式??
- 统计学基础知识梳理(三)
- 马里兰大学 计算机视觉,马里兰大学信息系统排名2019年
- 第十六届北京师范大学程序设计竞赛决赛
- R语言定量方法:回归,虚拟变量和交互项,假设检验:F 检验、AIC 和 BIC分析学生成绩数据带自测题
热门文章
- linux startx无效_Linux使用startx不能进入图形界面解决方案
- 【Shell】Shell脚本中调用另一个脚本的三种方式(fork/exec/source)
- js字符与ascii码转换
- pyhton 将ASCII码转换为字符char(),将字符转换为ASCII码ord()
- 2013年MBA、MPA、MPAcc入学考试综合能力辅导教材
- 低成本成FS68001A、FS68003无线充SOC芯片
- photoshop快捷键大全
- c语言设计数独出题目及答案,c语言题目-数独-求大神解释题目意思和分析题目和代码知道...
- 西南大学2019春计算机作业答案,2019年西南大学作业答案[1175]《仪器分析》
- C语言C Prime总结(2-7章)