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