Educoder - Java类和对象之对象组合之求圆柱体积

有点意思…
一开始用类的继承做的,过了后,参考了答案,没想到还有类的引用这么一说

掌握知识点

  • 对象的引用传递
  • 构造方法参数传递

通关源码

class Circle {
    double π;
    double r;
    public Circle(double π, double r) {
        this.π = π;
        this.r = r;
    }
    double area(){                  //类方法
        return π * r * r;
    }
}
public class Cylinder{
    double height;

    Circle circle;                                  //引用Circle类,类似于继承
    public Cylinder(Circle c, double height) {      //Circle c == Circle circle
        this.circle = c;
        this.height = height;
    }

    double area2(){
        return circle.area() * height;              //引用circle对象方法
    }

    public static void main(String[] args) {
        Circle circle = new Circle(Math.PI, 20);
        Cylinder cylinder = new Cylinder(circle,50);    //直接引用对象,调用有参构造
        System.out.print("圆柱的体积为" + String.format("%.2f",cylinder.area2()));
    }
}

在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要圆柱体,可以使用对象组合的方式,将圆和高组合成圆柱对象,然后通过调用圆的面和高计算圆柱体。 首先定义一个圆类,有半径属性和计算面方法。然后定义一个圆柱类,有高属性和圆属性,同时有计算体方法,调用圆的面方法即可。 具体实现代码如下: ```java // 圆类 class Circle { double radius; public Circle(double radius) { this.radius = radius; } public double getArea() { return Math.PI * radius * radius; } } // 圆柱类 class Cylinder { double height; Circle circle; public Cylinder(double height, double radius) { this.height = height; this.circle = new Circle(radius); } public double getVolume() { return circle.getArea() * height; } } // 测试 public class Main { public static void main(String[] args) { Cylinder cylinder = new Cylinder(5, 2); System.out.println("圆柱体为:" + cylinder.getVolume()); } } ``` 以上代码定义了圆类和圆柱类,并进行了简单的测试,输出圆柱体为:62.83185307179586。 ### 回答2: Java是一种广泛使用的编程语言,它具有面向对象的特性。学习Java类和对象后,我们可以使用对象组合来解决某些问题。下面我们就学习对象组合圆柱体。 在Java中,对象组合指的是将一个对象作为另一个对象的成员变量,以便为另一个对象提供一些特殊的属性或功能。在这个例子中,我们需要计算圆柱的体。圆柱的体由底部圆形的面和圆柱高度共同决定。因此,我们可以抽象出两个对象:圆和圆柱。 // 圆类 public class Circle { private double radius; public Circle(double radius) { this.radius = radius; } public double getArea() { return Math.PI * radius * radius; } } // 圆柱类,使用对象组合 public class Cylinder { private Circle base; private double height; public Cylinder(double radius, double height) { this.base = new Circle(radius); this.height = height; } public double getVolume() { return base.getArea() * height; } } 我们可以发现,圆柱类中使用了对象组合的特性,将圆作为底部圆形的成员变量。在圆柱类的构造函数中,先实例化底部圆形对象,并将其作为成员变量存储。然后,在计算圆柱体的公式中,直接调用底部圆形的计算面方法即可,这样便简洁明了地解决了问题。 至此,我们就通过对象组合圆柱体。相信大家对Java类和对象以及对象组合的概念有了更深的理解。在实际编程中,灵活运用这些概念,可以让代码更加简洁、易于维护。 ### 回答3: 在学习Java的类和对象时,我们需要了解对象组合的概念。对象组合是将一个对象作为另一个对象的属性来使用,这样的对象就称为组合对象。在Java中,我们可以通过组合对象来实现更复杂的功能。 例如,我们可以通过组合一个圆形对象和一个矩形对象来实现一个圆柱体的计算。圆柱体的体为底面乘以高。底面可以通过圆形的面来计算,高就是矩形的高度。 首先,我们可以创建一个Circle(圆形)类和一个Rectangle(矩形)类来表示底面圆和高度矩形。这两个类都应该有对应的属性和方法来实现计算面和周长的功能。 接下来,我们可以创建一个新类Cylinder(圆柱体)来表示我们要计算的这个对象。在Cylinder类中,我们需要使用对象组合来引用Circle和Rectangle对象,并实现计算体的方法。 具体的代码实现如下: ``` //定义Circle类 class Circle{ double radius; //半径 //计算圆形面 double getArea(){ return Math.PI*radius*radius; } } //定义Rectangle类 class Rectangle{ double height; //高度 double width; //宽度 //计算矩形面 double getArea(){ return height*width; } } //定义Cylinder类 class Cylinder{ Circle circle; //底面圆 Rectangle rectangle; //高度矩形 //计算圆柱体 double getVolume(){ return circle.getArea()*rectangle.height; } } //测试 public class Test{ public static void main(String[] args){ Circle cir = new Circle(); cir.radius = 3; Rectangle rec = new Rectangle(); rec.height = 5; rec.width = 3; //创建圆柱体并计算体 Cylinder cyl = new Cylinder(); cyl.circle = cir; cyl.rectangle = rec; double volume = cyl.getVolume(); System.out.println("圆柱体:"+volume); } } ``` 在这段代码中,我们先创建了Circle和Rectangle对象并设置它们的属性。然后,我们创建了一个Cylinder对象并使用对象组合来引用底面圆和高度矩形对象。最后,我们调用Cylinder对象的getVolume方法来计算圆柱体的体。 通过对象组合,我们可以更灵活地组合对象来实现更复杂的功能。在实际开发中,对象组合是一种常见的设计模式,掌握这个概念对于Java程序员来说是非常重要的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鬼鬼骑士

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

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

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

打赏作者

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

抵扣说明:

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

余额充值