用Java使用构造函数和this调用无参构造、或构造之间的调用关系,实现完成一个已知半径,求一个圆柱体的底面积和体积的计算程序。 要求:通过有参构造函数完成带参数的初始化工作;通过在无参构造中实现带有参数的构造
时间: 2024-05-29 15:13:12 浏览: 81
java使用this调用构造函数的实现方法示例
函数的调用,以保证无论使用有参构造函数还是无参构造函数创建对象都能够正确初始化。
回答:
可以使用以下代码实现:
public class Cylinder {
private double radius; // 圆柱体底面半径
private double height; // 圆柱体高度
// 有参构造函数:完成半径和高度的初始化
public Cylinder(double radius, double height) {
this.radius = radius;
this.height = height;
}
// 无参构造函数:通过调用有参构造函数,优先使用默认半径和高度
public Cylinder() {
this(1.0, 1.0);
}
// 计算圆柱体底面积
public double computeBaseArea() {
return Math.PI * radius * radius;
}
// 计算圆柱体体积
public double computeVolume() {
return computeBaseArea() * height;
}
// 测试程序,创建对象并计算底面积和体积
public static void main(String[] args) {
Cylinder c1 = new Cylinder(2.0, 5.0);
System.out.println("底面积:" + c1.computeBaseArea());
System.out.println("体积:" + c1.computeVolume());
Cylinder c2 = new Cylinder();
System.out.println("底面积:" + c2.computeBaseArea());
System.out.println("体积:" + c2.computeVolume());
}
}
在上述代码中,我们定义了一个圆柱体类 Cylinder,它有两个 private 成员变量 radius 和 height,分别表示底面半径和高度。我们通过一个有参构造函数 Cylinder(radius, height) 来完成这两个变量的初始化,同时我们还定义了一个无参构造函数 Cylinder(),通过调用 Cylinder(radius, height) 来默认使用半径和高度为 1.0 的值。通过 computeBaseArea()、computeVolume() 分别计算圆柱体的底面积和体积。在测试程序中,我们创建了两个圆柱体对象 c1、c2,并分别输出它们的底面积和体积。
阅读全文