第九次作业

利用接口和接口回调,实现简单工厂模式,当输入不同的字符,代表相应图形时,利用工厂类获得图形对象,再计算以该图形为底的柱体体积。

通过各个不同的字符:j,z,s,y,t进入不同的类从而来计算不同的图形的面积

class juxing implements Shape{
    double longnumber;
    double weadenumber;
    double area;
    juxing(double longnumber,double weadenumber){
        this.longnumber=longnumber;
        this.weadenumber=weadenumber;
        }    
    public double getmianji() {
        return area=longnumber*weadenumber;
    }
}

  

class gc {
    Shape shape=null;
    Scanner reader =new Scanner(System.in);
    
        public Shape shape(){
            char q=reader.next().charAt(0);
            switch(q){
            case 's': System.out.println("三角形的面积是:");shape =new sjx(1,4,2); break;   
            case 't': System.out.println("梯形的面积是:");shape = new tixing(1,2,5); break; 
            case 'j': System.out.println("矩形的面积是:");shape = new juxing(5,2); break;
            case 'z': System.out.println("正方形的面积是:");shape = new zfx(6); break;
            case 'y': System.out.println("圆形的面积是:");shape = new yuanxing(2); break;
              
            }
            return shape;
        }
        
}        

  

class zhuti{
    Shape shape;
    double gao;
    zhuti(Shape shape,double gao){
        this.shape=shape;
        this.gao=gao;
    }
    void huandi(Shape shape) {
        this.shape=shape;
    }
    double tiji() {
        return shape.getmianji()*gao;
    }
}

  

interface Shape{
    abstract double getmianji();
} 

  

 class tixing implements Shape{//定义梯形类并实现接口,求面积
     double sd;
     double xd;
     double gao;
     tixing(double sd,double xd,double gao){
         this.gao=gao;
         this.sd=sd;
         this.xd=xd;
     }
     public double getmianji() {
         return (sd+xd)*gao/2;
     }
 } 

  

class yuanxing implements Shape{
    double r;
    yuanxing(double r){
        this.r=r;
    }
    public double getmianji() {
        return Math.PI*r*r;
    }
}

  

class sjx implements Shape{
double a; double b; double c; sjx(double a,double b,double c){ this.a=a; this.b=b; this.c=c; } public double getmianji() { double d= (a+b+c)/2; return Math.sqrt(d*(d-a)*(d-b)*(d-c)); } }
  class zfx implements Shape{    double bian;
    zfx(double bian){
    this.bian=bian;
}
    public double getmianji(){
    return bian*bian;
    }
}

  

public class zz {private static boolean ture;
  public static void main(String[] args) {
    double gao=2;
    gc gc1=new gc();
    for(;;){ 
      zhuti zhuti1=new zhuti(gc1.shape(), gao);
      System.out.println(zhuti1.tiji());
    }
  }
}

  

你可能感兴趣的:(第九次作业)