gpt4 book ai didi

java - 我应该在哪里创建构造函数,在哪里不应该?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:45 24 4
gpt4 key购买 nike

我的第一堂面向对象编程课。

我应该为每个类创建一个构造方法吗?

例如

public class Cube2 {

int length;
int breadth;
int height;
public int getVolume() {
return (length * breadth * height);
}
Cube2() {
this(10, 10);
System.out.println("Finished with Default Constructor");
}
Cube2(int l, int b) {
this(l, b, 10);
System.out.println("Finished with Parameterized Constructor having 2 params");
}
Cube2(int l, int b, int h) {
length = l;
breadth = b;
height = h;
System.out.println("Finished with Parameterized Constructor having 3 params");
}
public static void main(String[] args) {
Cube2 cubeObj1, cubeObj2;
cubeObj1 = new Cube2();
cubeObj2 = new Cube2(10, 20, 30);
System.out.println("Volume of Cube1 is : " + cubeObj1.getVolume());
System.out.println("Volume of Cube2 is : " + cubeObj2.getVolume());
}
}

如果我想创建一个新的构造函数,我应该使用之前(第一个)构造函数中使用的相同参数吗?

就像构造函数 Cube2(int l, int b, int h) 除了变量(int h)

最佳答案

很多情况下不需要构造函数,特别是如果您打算使用 inversion of control ,其中需要一个默认构造函数。

但是对于您的多维数据集示例,两个提供一个或两个构造函数是有意义的。默认构造函数,如果您觉得有必要在构造后操作多维数据集参数,和/或采用实际创建多维数据集所需的三个参数的构造函数。

然而,在这种情况下,使用您的前两个构造函数初始化对象对我来说没有意义,因为通常没有合理的东西多维数据集的默认值tcp 连接的值 timeout 可能有一个合理的默认值。

关于java - 我应该在哪里创建构造函数,在哪里不应该?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com