java - Java构造函数中计算类属性的约定
问题描述
在 Java 中计算类属性的约定是什么?
例如,直接在构造函数中进行计算:
public class Person {
public Person(int birthyear){
this.birthyear = birthyear;
this.age = 2020 - birthyear;
}
}
与调用进行计算的方法相比:
public class Person {
public Person(int birthyear){
this.birthyear = birthyear;
this.age = calculateAge(birthyear);
}
}
在计算复杂的地方(不像这里),我倾向于使用第二个示例,但希望尽可能遵循约定。
这可能是重复的,在这种情况下,请指出正确的方向(在我的搜索中找不到)。
解决方案
没有真正的约定。它取决于计算的复杂性或可读性。对于像我这样简单的一个2020 - birthyear
,如果将它放在构造函数中,我会认为它非常好。
对于更复杂的情况,我宁愿将其推迟到一种方法上。但请记住:确保将其设为私有,否则子类可以访问未完全构造的对象。
推荐阅读
- blazor - 在 Blazor 服务器端使用模态进行无重新加载导航
- java - 在同一个数据库表上休眠实体以进行读取和写入
- java - 了解 Akka 集群分片
- mysql - 哪个是解决子组中最大值的最佳标准 sql 查询
- binary - 如何从十六进制数字的右侧删除 X 位?
- javascript - 如何跟踪组件可用的道具?
- python - 错误输出:一些测试用例失败,而其他测试用例通过
- html - 如何将文本放置在元素边框上,并且在文本接触边框的区域具有透明度?
- statistics - 当预测与事实之间的相关性为正时,r-squared 如何为负?
- windows - 使用自签名证书时,在 windows 上签署电子生成器生成的包失败