Java大类组织

Java大类组织,java,class,oop,Java,Class,Oop,我是从java开始的,我不知道如果像我所希望的那样,一个大的组织能做到什么。 我必须在一个类中包含许多参数,我希望访问类似的内容: 例如,我有一个班上的学生谁实施班上的人。但是他班的学生有很多参数,我想这样分类: Student John = new Student(); John.physical.setHeight(178); John.physical.setWeight(70); John.academic.setQualification(7.5); John.academic.se

我是从java开始的,我不知道如果像我所希望的那样,一个大的组织能做到什么。 我必须在一个类中包含许多参数,我希望访问类似的内容: 例如,我有一个班上的学生谁实施班上的人。但是他班的学生有很多参数,我想这样分类:

Student John = new Student();

John.physical.setHeight(178);
John.physical.setWeight(70);
John.academic.setQualification(7.5);
John.academic.setSubject(Maths);
John.administrative.setAccountNumber(XXXXX);
John.administrative.setPassport(123456789);
...
public Student(){
   physicalCharacteristics = new PhysicalCharacteristics();
}
我可以这样做吗?

有几点: 1) 您应该将所有嵌套逻辑单元(如“物理”、“学术”、“管理”)移动到专用实体, 2) 您应该为将接收所有初始化参数的每个实体引入适当的构造函数,例如,“physical”的构造函数将是下一个physical(短高度、短重量)(“physical”是实体名称), 3) 您应该使用福勒先生和埃文斯先生介绍的“”。 因此,您的代码将以下一种方式重新组织:

Student john = new Student();
john.setPhysical(new Physical(178, 70))
    .setAcademic(new Academic(7.5, Maths))
    .setAdministrative(new Administrative(/*account number*/, /*passport number*/));
更新。

每节新课都应该放在“学生”课之外。他们将负责“学生”类的特定方面,并满足“规则自”原则,“学生”类的实例将拥有该类的实例。这将减少类之间的耦合,因为,例如,如果“学术”类应该更改,而“学生”类则不会修改,您还可以引入几种类型的“学术”实体等。

有几点: 1) 您应该将所有嵌套逻辑单元(如“物理”、“学术”、“管理”)移动到专用实体, 2) 您应该为将接收所有初始化参数的每个实体引入适当的构造函数,例如,“physical”的构造函数将是下一个physical(短高度、短重量)(“physical”是实体名称), 3) 您应该使用福勒先生和埃文斯先生介绍的“”。 因此,您的代码将以下一种方式重新组织:

Student john = new Student();
john.setPhysical(new Physical(178, 70))
    .setAcademic(new Academic(7.5, Maths))
    .setAdministrative(new Administrative(/*account number*/, /*passport number*/));
更新。

每节新课都应该放在“学生”课之外。他们将负责“学生”类的特定方面,并满足“规则自”原则,“学生”类的实例将拥有该类的实例。这将减少类之间的耦合,因为,例如,如果“学术”类应该更改,而“学生”类则不会修改,您还可以引入几种类型的“学术”实体等。

有几点: 1) 您应该将所有嵌套逻辑单元(如“物理”、“学术”、“管理”)移动到专用实体, 2) 您应该为将接收所有初始化参数的每个实体引入适当的构造函数,例如,“physical”的构造函数将是下一个physical(短高度、短重量)(“physical”是实体名称), 3) 您应该使用福勒先生和埃文斯先生介绍的“”。 因此,您的代码将以下一种方式重新组织:

Student john = new Student();
john.setPhysical(new Physical(178, 70))
    .setAcademic(new Academic(7.5, Maths))
    .setAdministrative(new Administrative(/*account number*/, /*passport number*/));
更新。

每节新课都应该放在“学生”课之外。他们将负责“学生”类的特定方面,并满足“规则自”原则,“学生”类的实例将拥有该类的实例。这将减少类之间的耦合,因为,例如,如果“学术”类应该更改,而“学生”类则不会修改,您还可以引入几种类型的“学术”实体等。

有几点: 1) 您应该将所有嵌套逻辑单元(如“物理”、“学术”、“管理”)移动到专用实体, 2) 您应该为将接收所有初始化参数的每个实体引入适当的构造函数,例如,“physical”的构造函数将是下一个physical(短高度、短重量)(“physical”是实体名称), 3) 您应该使用福勒先生和埃文斯先生介绍的“”。 因此,您的代码将以下一种方式重新组织:

Student john = new Student();
john.setPhysical(new Physical(178, 70))
    .setAcademic(new Academic(7.5, Maths))
    .setAdministrative(new Administrative(/*account number*/, /*passport number*/));
更新。


每节新课都应该放在“学生”课之外。他们将负责“学生”类的特定方面,并满足“规则自”原则,“学生”类的实例将拥有该类的实例。这将减少类之间的耦合,因为,例如,如果“学术”类应该更改,而“学生”类则不会被修改,您还可以引入几种类型的“学术”实体等。

您可以通过为类别类型创建单独的类来实现这一点。例如,您可以有一个具有身高和体重属性的“PhysicalCharacteristics”类,一个具有accountNumber和passport属性等的“AdministrativeDetails”类。然后您可以将这些类的实例作为属性放置在学生类中。因此,您可以通过从这些类属性获取属性来访问/编辑属性。例如,要设置高度,可以执行John.getPhysicalCharacteristics().setHeight(178)

不要忘记在学生构造函数中初始化这些类以避免空引用异常:

例如,如果您的学生类包含“PhysicalCharacteristics PhysicalCharacteristics;”变量,则应在构造函数中对其进行如下初始化:

Student John = new Student();

John.physical.setHeight(178);
John.physical.setWeight(70);
John.academic.setQualification(7.5);
John.academic.setSubject(Maths);
John.administrative.setAccountNumber(XXXXX);
John.administrative.setPassport(123456789);
...
public Student(){
   physicalCharacteristics = new PhysicalCharacteristics();
}

可以通过为类别类型创建单独的类来实现这一点。例如,您可以有一个具有身高和体重属性的“PhysicalCharacteristics”类,一个具有accountNumber和passport属性等的“AdministrativeDetails”类。然后您可以将这些类的实例作为属性放置在学生类中。因此,您可以通过从这些类属性获取属性来访问/编辑属性。例如,要设置高度,可以执行John.getPhysicalCharacteristics().setHeight(178)

不要忘记在学生构造函数中初始化这些类以避免空引用异常:

例如,如果您的学生类包含“PhysicalCharacteristics PhysicalCharacteristics;”变量,则应在构造函数中对其进行如下初始化:

Student John = new Student();

John.physical.setHeight(178);
John.physical.setWeight(70);
John.academic.setQualification(7.5);
John.academic.setSubject(Maths);
John.administrative.setAccountNumber(XXXXX);
John.administrative.setPassport(123456789);
...
public Student(){
   physicalCharacteristics = new PhysicalCharacteristics();
}

可以通过为类别类型创建单独的类来实现这一点。例如,你可以选择身高和体重合适的“身体特征”课程