继承的使用(this与super)

import java.util.*;
class Circle //圆类
 
{   private float r;
 
    Circle() 
    {    r = 1;    }
 
    Circle(float r) 
    {     this.r = r;    }
 
    public float getR() //返回值r
    {    return r;    }
 
    public void setR(float r) //重新赋值(公有,私有均可)
    {    this.r = r;    }
 

    public double getA() //返回圆的面积
    { return r * r * Math.PI; }
 

    public double getP() //返回圆的周长
    { return r * Math.PI * 2; } 
}
 

class  CircleZhu extends Circle //圆柱类
{   private float h;
 
    CircleZhu() 
    {   h = 1;    }
 
    CircleZhu(float r, float h) 
    {   super(r);
        this.h = h;   }
 
    public float getH() //返回值h
    {   return h;   }
 
    public void setH(float h) 
    {   this.h = h;   }
 
    public double getA() //返回圆柱的面积
    {   return (super.getP() * h + super.getA() * 2);    }
 
    public double getV() //返回圆柱的体积
    {   return super.getA() * h;    }     
}
 
class  CircleZhui extends Circle //圆锥类
 
{   private float h;
 
    public  CircleZhui() 
    {    h = 1;    }
 
    public  CircleZhui(float r, float h) 
    {    super(r);
         this.h = h;    }
 
    public float getH() 
    {    return h;    }
 
    public void setH(float h) 
    {    this.h = h;    }
 
    public double getA() //返回圆锥的面积
    {    return (Math.PI * super.getR() * Math.sqrt(Math.pow(super.getR(),2) + Math.pow(h,2)));    }
 
    public double getV() //返回圆锥的体积
    {    return (super.getA() * h) / 3;    }

class   CircleQiu extends Circle //球类
 
{   public   CircleQiu() {    }
 
    public   CircleQiu(float r) 
    {    super(r);    }
 
    public double getA() //返回球的面积
    {    return 4 * Math.PI * Math.pow(super.getR(),2);    }
 
    public double getV() //返回球的体积
    {    return (3 * Math.PI * Math.pow(super.getR(),3))/4;    }
}

class Rectangle //矩形类

{   private float l;
    private float w;
 
    Rectangle() 
    {    l = 1;
         w = 1;    }
 
    Rectangle(float l, float w) 
    {    this.l = l;
         this.w = w;    }
 
    public float getL() //返回值l
    {    return l;    }
 
    public void setL(float l) //重新赋值(公有,私有均可)
    {    this.l = l;    }
 
    public float getW() //返回值w
    {    return w;    }

    public void setW(float w) //重新赋值(公有,私有均可)
    {    this.w = w;    }
 
    public double getA() //返回矩形的面积
    {    return w * l;    }
 
    public double getP() //返回矩形的体积
    {    return (w + l) * 2;    }
}

class  RectTi extends Rectangle //长方体类
 
{   private float h;
 
    RectTi() 
    {    h = 1;    }
 
    RectTi(float l, float w, float h) 
    {    super(l, w);
         this.h = h;    }

    public float getH() //返回值h
    {    return h;    }
 
    public void setH(float h) 
    {    this.h = h;    }
 
    public double getA() //返回长方体的面积
    {    return (super.getA() + super.getL() * h + super.getW() * h) * 2;   }
 
    public double getV() //返回长方体的体积
    {    return super.getA() * h;    }
}

public class  Graph 
{   public static void main(String[] args) 
    {   Scanner sc = new Scanner(System.in);
        while(true)
        {  System.out.println("求圆相关属性请输入1,求圆柱相关属性请输入2,求圆锥相关属性请输入3,求球相关属性请输入4,求矩形类型属性请输入5,求长方体类型属性请输入6:");
           int x = sc.nextInt();
           if(x==1)
           {  Circle c1 = new Circle();
              System.out.println("请输入圆的半径:");
              c1.setR(sc.nextFloat());
              System.out.println("圆的面积为:" + c1.getA());
              System.out.println("圆的周长为:" + c1.getP());  break;  }
 
           else if(x==2)
           {  CircleZhu c2 = new  CircleZhu();
              System.out.println("输入圆柱的半径:");
              c2.setR(sc.nextFloat());
              System.out.println("输入圆柱的高:");
              c2.setH(sc.nextFloat());
              System.out.println("圆柱的面积:" + c2.getA());
              System.out.println("圆柱的体积:" + c2.getV());  break;  }
 
           else if(x==3)
           {  CircleZhui c3 = new  CircleZhui();
              System.out.println("输入圆锥的半径:");
              c3.setR(sc.nextFloat());
              System.out.println("输入圆锥的高:");
              c3.setH(sc.nextFloat());
              System.out.println("圆锥的面积:" + c3.getA());
              System.out.println("圆锥的体积:" + c3.getV());  break;  }
 
           else if(x==4)
           {  CircleQiu c4 = new   CircleQiu();
              System.out.println("输入球体的半径:");
              c4.setR(sc.nextFloat());
              System.out.println("球体的面积:" + c4.getA());
              System.out.println("球体的体积:" + c4.getV());  break;  }
 
           else if(x==5)
           {  Rectangle r1 = new Rectangle();
              System.out.print("请输入矩形的长:");
              r1.setL(sc.nextFloat());
              System.out.print("请输入矩形的宽:");
              r1.setW(sc.nextFloat());
              System.out.println("矩形的面积为:" + r1.getA());
              System.out.println("矩形的周长为:" + r1.getP());  break;  }
 
           else if(x==6)
           {  RectTi r2 = new  RectTi();
              System.out.println("输入长方体的长:");
              r2.setL(sc.nextFloat());
              System.out.println("输入长方体的宽:");
              r2.setW(sc.nextFloat());
              System.out.println("输入长方体的高:");
              r2.setH(sc.nextFloat());
              System.out.println("长方体的表面积为:" + r2.getA());
              System.out.println("长方体的体积为:" + r2.getV());
              break;  }
           else
              System.out.print("输入错误,请重新输入*****");    }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值