题目:定义Shape类表示一般二维图形。Shape具有抽象方法area和perimeter,分别计算形状的面积和周长。试定义一些二维形状类(如矩形、三角形、圆形等),这些均为Shape类的子类并计算出这些形状的面积和周长,打印输出相关信息。

代码:

//形状类
public abstract class Shape {
public abstract double area();
public abstract double perimeter();
}
//矩形类
public class Rectangle extends Shape { private double length;
private double width; public double getLength() {
return length;
} public void setLength(double length) {
this.length = length;
} public double getWidth() {
return width;
} public void setWidth(double width) {
this.width = width;
} @Override
public double area() {
return getLength() * getWidth();
} @Override
public double perimeter() {
return 2 * (getWidth() + getWidth());
}
}
//三角形类
public class Triangle extends Shape { private double a, b, c; public double getA() {
return a;
} public void setA(double a) {
this.a = a;
} public double getB() {
return b;
} public void setB(double b) {
this.b = b;
} public double getC() {
return c;
} public void setC(double c) {
this.c = c;
} @Override
public double area() {
double p = (getA() + getB() + getC()) / 2;
return Math.sqrt(p * (p - getA()) * (p - getB()) * (p - getC()));
} @Override
public double perimeter() {
return getA() + getB() + getC();
} }
//圆形类
public class Circle extends Shape { private double diameter; public double getDiameter() {
return diameter;
} public void setDiameter(double diameter) {
this.diameter = diameter;
} @Override
public double area() {
return Math.PI * Math.pow(getDiameter() / 2, 2);
} @Override
public double perimeter() {
return Math.PI * getDiameter();
} }
//测试代码
public class 测试 { public static void main(String [] args){
Rectangle rec = new Rectangle();
rec.setLength(10);
rec.setWidth(5);
double rec_area = rec.area();
double rec_perimeter = rec.perimeter();
System.out.println("矩形的面积:"+rec_area+",周长"+rec_perimeter); Triangle tri = new Triangle();
tri.setA(3);
tri.setB(4);
tri.setC(5);
double tri_area = tri.area();
double tri_perimeter = tri.perimeter();
System.out.println("三角形的面积:"+tri_area+",周长"+tri_perimeter); Circle cir = new Circle();
cir.setDiameter(10);
double cir_area = cir.area();
double cir_perimeter = cir.perimeter();
System.out.println("圆形的面积:"+cir_area+",周长"+cir_perimeter);
} }

最新文章

  1. java Properties异常:Malformed \uxxxx encoding.
  2. Git命令回顾
  3. 描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
  4. @SuppressWarnings忽略警告
  5. MonoRail MVC应用(2)-构建多层结构的应用程序
  6. LINQ to SQL语句
  7. Java事务处理总结
  8. date 、cal、bc
  9. Unity 物体围绕圆周运动
  10. 2015北大夏令营day1 B:An Idea of Mr. A
  11. net搭建热插拔式web框架(沙箱的构建)
  12. kafka 0.10.2 cetos6.5 集群部署
  13. gitlab一键安装+配置(备份+LADP认证)
  14. Redis笔记1-redis的搭建和使用
  15. C# 解析json数据出现---锘縖
  16. mybatis将传入的Integer类型的0被识别成空字符串的问题
  17. python语法_模块_re(正则表达)
  18. Python内置函数(31)——id
  19. javaScript函数立即执行《1》
  20. MySQL高可用方案-PXC环境部署记录

热门文章

  1. 如何编写自己的Linux安全检查脚本?
  2. uboot 网络不通问题解决一例1
  3. google使用技巧
  4. ansible api
  5. 工作流_JBPM之Helloword
  6. 运用Real Spy Monitor监控网络
  7. 3. Android框架和工具之 xUtils(ViewUtils )
  8. js 回车键 跳转到下一个输入框
  9. UVA 113 Power of Cryptography (数学)
  10. 剑指Offer41 反转单词顺序,单词字符顺序不变