每日一题Day3

面向对象试题:

/**
 * @Author: littledeerfish
 * @Description: 建立一个Po(点)类,包含数据成员X,Y(坐标点),构造器;
 * 以Po为父类,实现一个Circle(圆)类作为子类,增加数据成员R(半径),构造器、求圆面积方法getArea(),求圆周长方法getCircumference();
 * 再以Circle类为父类,实现出一个Cylinder (圆柱体〕子类,增加数据成员H(高),构造器,求圆柱体积方法getVolume()、求圆柱表面积方法getArea(),请编写程序实现。(圆周率取3.14)
 * 要求:
 * 自定义各个类的toString方法,要求当上面三个类的对象创建完毕后,我们直接打印这个三个对象可以显示这个对象的完整信息。
 * 如打印Circle类的对象会输出:
 * Circle{X=1,Y=2,R=1,circumference=6.28,area=3.14}
 * 友情提示X,Y,R应均为double类型;
 * @Date: Created in 2021/12/3-17:34
 * @Version: v1.8
 **/
public class Day3 {
    public static void main(String[] args) {
        System.out.println(new Po(1, 2));
        System.out.println( new Circle(1, 2, 1));
        System.out.println(new Cylinder(1, 2, 1, 2));

    }
}
//Po类:
class Po{
   private double X;
   private double Y;

    public Po(double X, double Y) {
        this.X = X;
        this.Y = Y;
    }

    public double getX() {
        return X;
    }

    public double getY() {
        return Y;
    }
    //偷懒:
    public String getMassage(){
        
        return "x=" + getX() +", y=" + getY();
    }

    @Override
    public String toString() {
        return "Po{" +getMassage() +"}";
    }
}
//圆的类:
class Circle extends Po {
   private double R;

    public double getR() {
        return R;
    }

    public Circle(double x, double y, double R) {
        super(x, y);
        this.R = R;
    }
   //求面积:
    public double getArea(){

       // return Math.PI*R*R;
        return 3.14*R*R;
    }
    //求周长:
    public double getCircumference(){
       // return 2*Math.PI*R;
        return 3.14*R*2;
    }
    //重写toString:
    @Override
    public String toString() {
        return "Circle{" + getMassage()+",R="+getR()+",circumference="+getCircumference()+",area="+getArea()+"}";
    }
}
//圆柱体的类:
class Cylinder extends Circle{
    private int H;

    public Cylinder(double x, double y, double R,int H) {
        super(x, y, R);
        this.H= H;
    }
    //求体积:
    public double getVolume(){
        return super.getArea()*H;
    }
    //求表面积:
    @Override
    public double getArea(){
        return 2*super.getArea()+super.getCircumference()*H;
    }
    //重写toString:
    @Override
    public String toString(){
        return "Cylinder{"+getMassage()+",R="+getR()+",H="+H+",area="+getArea()+",Volume="+getVolume()+"}";
    }

}

突然发现:为啥样例输出X、Y、R没有小数点?

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦鱼yx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值