java - 为什么我们需要在同一个类中使用构造函数链接而不是使用方法?
问题描述
我正在学习构造函数链接,我得到了两个案例。一种是初始化父类,这是可以的。Java默认调用父类的构造函数,如果需要我们可以使用super。
我得到的另一个案例与代码冗余有关。下面是一个例子。
class Student {
int id;
String name, city;
Student ( int id, String name, String city ) {
this(id, name);
this.city = city;
}
Student(int id, String name) {
this.id = id;
this.name = name;
}
void display() {
System.out.println( this.id + this.city + this.name);
}
}
// 上面的例子很好,我可以看到我不必编写初始化名称和城市的代码,但可以编写相同的代码如下
class Student1 {
int id;
String name, city;
Student1 ( int id, String name, String city ) {
this.setStudent(id, name);
this.city = city;
}
private void setStudent ( int id, String name) {
this.id = id;
this.name = name;
}
void display() {
System.out.println( this.id + this.city + this.name);
}
}
我试图了解是否存在任何需要构造函数链接和使用方法样式进行初始化的特定用例不适用。如果不是,那么一个比另一个有什么优势,或者为什么首选构造函数链接?
解决方案
推荐阅读
- python - 如何在 jupyter notebook 中插入 python?
- c - C 中的类型声明等价:这些类型在技术上是相同的,还是只是在语用上相同?
- javascript - 如何使用 Tailwind 和 Vue.js 动态显示移动菜单?
- javascript - 未捕获的错误:语法错误,无法识别的表达式 - JQuery 3.2.1
- mysql-python - ERROR 1215 (HY000): 在 ubuntu18.04 上将数据库添加到 mysql 时无法添加外键约束
- python - 尝试在 Azure Databricks DBFS 中导入 CSV 时出现 NULL 值
- python - Odoo 11:在 ir.cron 的调用方法中获取 cron id 或名称,这些方法是手动创建的,而不仅仅是从 XML 创建的
- ios - Swift iOS 使用数据库中的数据更新图表
- android - 发布中的 Espresso 测试
- r - 将 if 逻辑与 match 一起使用