//形状接口定义
public interface IShape {//功能
boolean input(); //输入方法
float getArea(); //求面积方法
}
//流程处理类
public class ShapeProcess {
private IShape shape;
public ShapeProcess(IShape shape){
this.shape = shape;
}
public float process(){
shape.input();
float value = shape.getArea();
return value;
}
//圆类
public class Circle implements IShape{
float r;
@Override
public boolean input() {
// TODO Auto-generated method stub
System.out.println("请输入半径:");
Scanner scanner = new Scanner(System.in);
r = scanner.nextFloat();
return true;
}
@Override
public float getArea() {
// TODO Auto-generated method stub
float s = (float)Math.PI*r*r;
return s;
}
}
//矩形类
public class Rectangle implements IShape{
float width,height;
@Override
public boolean input() {
// TODO Auto-generated method stub
System.out.println("请输入宽、高:");
Scanner scanner = new Scanner(System.in);
width = scanner.nextFloat();
height = scanner.nextFloat();
return true;
}
@Override
public float getArea() {
// TODO Auto-generated method stub
float s = width*height;
return s;
}
}
//测试类
public class Test {
public static void main(String[] arg){
IShape shape1 = new Circle();
ShapeProcess tool1 = new ShapeProcess(shape1);
float value1 = tool1.process();
System.out.println("圆的面积:"+value1);
IShape shape2 = new Rectangle();
ShapeProcess tool2 = new ShapeProcess(shape2);
float value2 = tool2.process();
System.out.println("矩形的面积:"+value2);
}
}
java的流程框架
最新推荐文章于 2024-07-04 14:43:05 发布