gpt4 book ai didi

java - 我应该在构造函数中使用 getter 和 setter 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 08:31:11 25 4
gpt4 key购买 nike

初始化类时,在构造函数中使用 getter 和 setter 函数是一种好习惯吗?

或者直接设置变量是一种好习惯,因为构造函数可以被认为是一种修改器?

最佳答案

您不应该从构造函数中调用 getter 和 setter。

构造函数构造定义它的特定类。初始化字段是它的工作,因为 - 好吧 - 没有其他东西可以。

保证初始化字段的唯一方法是分配它们。如果你调用一个 setter,它有可能被覆盖并且它可能会做其他事情。它可能会调用尚未初始化的子类中的方法。

如果您只是从同一个类中获取一个字段,那么调用 getter 也是一个坏主意。如果它已在父类(super class)中声明,您可能会证明它是合理的;如果你需要从子类中的父类(super class)获取数据,你将不得不调用getter(除非它被保护)。如果您需要在构造期间将数据从子类传递到父类(super class),您应该将其作为参数传递。但这是与您所描述的不同的用例,并且子类可能没有您自己的字段与 setter/getter 相对应。

如果您有任何“特殊”初始化代码,请将其放在一个单独的私有(private)方法中,并分别从构造函数和 setter 中调用它。

关于java - 我应该在构造函数中使用 getter 和 setter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53290861/

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