建立一个图形父类:
public class Shape {
//图形类,所有图形的爸比,具有计算面积的方法
//计算的方法由子类重写实现
public double area() {
return 0;
}
public Shape() {
super();
}
}
建立一个矩形子类:
public class Rect extends Shape {
//1.定义变量
//2.生成set和get 方法
//3.生成构造方法
//4.实现 area 计算面积的方法
private double w;//宽
private double h;//高
public Rect() {
super();
}
public Rect(double w, double h) {
super();
this.w = w;
this.h = h;
}
public double getW() {
return w;
}
public void setW(double w) {
this.w = w;
}
public double getH() {
return h;
}
public void setH(double h) {
this.h = h;
}
@Override
public double area() {
return w * h;
}
}
建立一个三角形子类:
public class Triangle extends Shape {
private double w;//宽
private double h;//高
@Override
public double area() {
return (w * h) / 2;
}
public double getW() {
return w;
}
public void setW(double w) {
this.w = w;
}
public double getH() {
return h;
}
public void setH(double h) {
this.h = h;
}
public Triangle(double w, double h) {
super();
this.w = w;
this.h = h;
}
public Triangle() {
super();
// TODO Auto-generated constructor stub
}
}
建立一个圆形子类:
public class Circle extends Shape {
private double r ;
public double getRadius() {
return r;
}
public void setRadius(double r) {
this.r = r;
}
@Override
public double area() {
return r * r * Math.PI;
}
public Circle(double r) {
super();
this.r = r;
}
public Circle() {
super();
// TODO Auto-generated constructor stub
}
}
建立一个 计算图形相加的类:
public class Computer {
/**
* 计算两个图形面积的和
* @param s1
* @param s2
* @return
*/
// public double sumArea(Shape s1,Shape s2) {
//
// double area1 = s1.area();
// double area2 = s2.area();
//
// return area1 + area2;
//无论传入多少个数据,族中都是放入了 shapes 数组中
public double sumArea(Shape ...shapes){
double totalArea = 0;//累加的和
//使用for-each的方式遍历 shapes 数组
for(Shape shape:shapes) {
double area = shape.area();//获取每个图形的面积
totalArea += area;//进行累加
}
return totalArea;//返回结果
}
}
建立一个main方法运行 的类
public class Application {
public static void main(String[] args) {
//房屋面积计算器
//创建计算器
Computer com = new Computer();
//创建两个矩形
Rect r1 = new Rect(3,5);
Rect r2 = new Rect(3,4);
//计算矩形面积
double totalArea1 = com.sumArea(r1, r2);
System.out.println("矩形面积为" + totalArea1);
//创建两个三角形
Triangle t1 = new Triangle(3,5);
Triangle t2 = new Triangle(3,4);
//计算三角形面积
double totalArea2 = com.sumArea(t1, t2);
System.out.println("三角面积为" + totalArea2);
//创建两个圆形
Circle c1 = new Circle(2);
Circle c2 = new Circle(1);
//计算圆的面积
double totalArea3 = com.sumArea(c1, c2);
System.out.println("圆的面积为" + totalArea3);
//计算所有图形混合总面积
double totalArea4 = com.sumArea(r1,r2,t1,t2,c1,c2);
System.out.println("总面积为" + totalArea4);
}
}