gpt4 book ai didi

java - 在构造函数或类中分配属性值,哪个更好?

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

以下几种实例化有区别吗?我是直接在定义变量的地方设置值,还是在类构造函数中设置值。

如果不是,最佳实践是什么?

“在类里面”:

class A {
boolean b = true;

public A(){
}
}

“在构造函数中”:

class B {
boolean b;

public B(){
b = true;
}
}

变量类型只是为了举例。我看到的唯一区别是,当属性是复杂类型(类)时,构造函数取决于提供给包含类的构造函数的值:

class A {
B b;
public A(String s){
b = new B(s);
}
}

最佳答案

其实两者是等价的。然而,从可读性的角度来看,第一个更具可读性。此外,当有人从 IDE 导航到变量声明时(例如 Eclipse 中的 ctrl + 鼠标单击),很容易看到默认值。

检查一下the official tutorial不得不说——

This works well when the initialization value is available and the initialization can be put on one line. However, this form of initialization has limitations because of its simplicity. If initialization requires some logic (for example, error handling or a for loop to fill a complex array), simple assignment is inadequate. Instance variables can be initialized in constructors, where error handling or other logic can be used. To provide the same capability for class variables, the Java programming language includes static initialization blocks.

因此,当过程简单时,您可以轻松地使用简单的单行初始化技术。对于复杂的初始化选择,构造函数是必经之路。

关于java - 在构造函数或类中分配属性值,哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18380410/

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