编写求解几何图形(如三角形,矩型,圆)的周长、面积的应用程序,要求用到抽象类或接口等面向对象程序设计技术的特点。
(1)实验代码
Shape.java
public interface Shape {//定义一个接口:
double perimeter(); // 求周长
double area(); //求面积
}
Triangle.class
//三角形的周长和面积
public class Triangle implements Shape {
// 三条边的边长
private double a;
private double b;
private double c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double perimeter() { // 已知三边长求周长
return a + b + c;
}
public double area() {// 已知三边长求面积
return ((0.25) * Math.sqrt((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)));
}
}
Circle.java
//求圆的周长和面积
public class Circle implements Shape {
// 半径
private double r;
public Circle(double r) {
this.r = r;
}
public double perimeter() { // 已知半径求周长
return 2 * 3.14 * r;
}
public double area() { // 已知半径求面积
return 3.14 * r * r;
}
}
Rectangle.java
//求矩形的周长和面积
public class Rectangle implements Shape {
private double a;
private double b;
public Rectangle(double a, double b) { //矩形的边长
this.a = a;
this.b = b;
}
public double perimeter() { //已知矩形的边长求周长
return 2 * (a + b);
}
public double area() { //已知矩形的边长求面积
return a * b;
}
}
Test.java
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入三角形三边长:a,b,c" );
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
Shape triangle = new Triangle(a, b, c);
System.out.println("三角形周长:" + triangle.perimeter());
System.out.println("三角形面积:" + triangle.area());
System.out.println("请输入圆的半径:r" );
int r = scan.nextInt();
Shape circle = new Circle(r);
System.out.println("圆周长:" + circle.perimeter());
System.out.println("圆面积:" + circle.area());
System.out.println("请输入矩形的边长:x,y" );
int x = scan.nextInt();
int y = scan.nextInt();
Shape rectangle = new Rectangle(x, y);
System.out.println("矩形周长:" + rectangle.perimeter());
System.out.println("矩形面积:" + rectangle.area());
}
}
![](https://img-blog.csdnimg.cn/31795438ef1148319f4b3b7d30db13a3.png)
|