Java 抽象类

Java 抽象类

定义 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 Test {

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);

}

}

Linux Linux

zha***ixinwe@163.com

参考地址

7年前 (2018-08-28)

相关推荐

PS批量加logo/加水印教程
365体育投注提款

PS批量加logo/加水印教程

📅 07-25 👁️ 9394
王者新赛季排位进不去怎么办
365体育投注提款

王者新赛季排位进不去怎么办

📅 09-13 👁️ 5489
空调外机怎么转下又停?空调外机为何频繁启动又停止?
为什么说探探在国内不是一个好生意? 本文首发于本人同名微信公号 momentck周五在美股上市的中国概念股 陌陌 发布一则公告,宣布自5月11日起的一个月内...
联想v310怎么进入bios设置U盘启动
365提款一直在审核

联想v310怎么进入bios设置U盘启动

📅 09-24 👁️ 2211
刘恺威资产未分割怎么回事?刘恺威有多少资产和杨幂离婚后为何不分割
元音 /eɪ/ 的发音和技巧
365bet平台网址

元音 /eɪ/ 的发音和技巧

📅 07-02 👁️ 8368
世界各地的 37 种传统游戏:看看你玩过哪几个?
365bet平台网址

世界各地的 37 种传统游戏:看看你玩过哪几个?

📅 08-02 👁️ 2629
韩国驾照:为什么去韩国考驾照?
365体育投注提款

韩国驾照:为什么去韩国考驾照?

📅 09-17 👁️ 7932