定义一个java类,并将该类的元素数组作为其字段之一,有什么问题吗?
我的应用模型由疾病组成,每个疾病都有固有属性(id、名称、发病率等)以及与其他疾病的关系(例如风险因素、诱发疾病、发现)。我考虑了以下两个对象模型:
第一个:嵌套类:
class DiagnosticElement{
Disorder disorder;
List<Disorder> relatedDisorders;
static class Disorder {
int id;
String name;
double incidence;
Disorder(id){
this.id=id;
}
}
}
第二点:
class Disorder {
int id;
String name;
double incidence;
List<Disorder> relatedDisorders;
Disorder(id){
this.id=id;
this.relatedDisorders=new ArrayList<Disorder>()
}
}
第二种方法似乎更简单。当然,我必须先实例化无序对象,然后才能在ArrayList中引用它们。一种方法比另一种好吗
# 1 楼答案
第二种方法没有什么错,事实上它经常被使用。例如,可以考虑树或链接列表,其中节点拥有指向其他节点的链接。如果在构造函数中创建相同类型的对象,则必须小心,因为这可能导致代码永远运行
# 2 楼答案
小心,你的线
在中,构造函数将创建一个局部变量
relatedDisorders
,您将对其进行初始化。您没有初始化类字段无论如何,在类中引用自己的类没有什么错。这就是每个链表的工作原理