对于分配,我必须处理用户定义的数据类型,即Gender
。在Character
类中,它具有变量int age
和Gender gender
。
Character类具有构造函数Character(int age, Gender gender), Character(Character c)
以及getter和setter。 (已经为此分配给出了Character类的UML图)。
在Person
类中,它扩展了Character
。 Gender
包括FEMALE,MALE and OTHERS。但是从这里开始,我不知道如何处理该枚举。
问题:
我需要在Character
或Person
中指定枚举吗?
另一个问题是Character(Character c)
是什么意思。 Character c
表示c是Character
的实例吗?
此外,年龄是一类不变式,年龄> = 0始终为真。我搜索了什么是类不变式,但并不太了解。我是否需要设置另一个名为Age的类来处理此类不变性?
我的角色类别如下:
public abstract class Character{
private int age;
private static Gender gender;
public Character(int age, Gender gender){
this.age = age;
Character.gender = gender;
}
public Character(Character c){
}
public int getAge(){
return age;
}
public Gender getGender(){
return gender;
}
public void setAge(int age){
this.age = age
}
public void setGender(Gender gender){
this.Character.gender = gender;
}
}
“我的人”类如下:
public class Person extend Character{
}
您需要创建Gender
类型的枚举,如:
public enum Gender {
MALE("Male"), FEMALE("Female"), OTHERS("Others");
String value;
Gender(String value)
{
this.value = value;
}
}
然后在Character
类中使用它,因为似乎[G0]比Character
中的'性别'更合适。
是,它的意思是,但是我认为应该在Person类中。
您可以在@ Person
处了解“类不变式”。另外,我认为年龄应该在What is a class invariant in java?类中声明,而不是在Person
中声明。
您的角色类可以像:
Character
人员分类可以是:
public abstract class Character{
private Gender gender;
public Character(Gender gender){
this.gender = gender;
}
public Character(Character character)
{
this.gender = character.gender;
}
public Gender getGender(){
return gender;
}
public void setGender(Gender gender){
this.gender = gender;
}
}