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