英文:
enumeration for reference variable in Java
问题
我正在学习引用变量。如果我有两个类:假设一个是 Person,另一个是继承自 Person 类的 Minnesotan。Person 类是抽象的。在 Person 类中,有一个称为 Gender 的引用变量,它可以是 female、male 和 others。我该如何编写具有枚举的引用变量 Gender?引用变量如何在子类中扩展?如果这是重复的问题,我很抱歉,并提前感谢您的帮助。
public abstract class Person{
public static Gender gender;
class Gender{
}
public enum Gender{
female, male, others;
}
}
public class Minnesotan extends Person{
public Minnesotan(Gender gender){
super(gender);
}
}
英文:
I am learning reference variables. If I have two classes: let’s say one is Person and the other is Minnesotan which extends Person class. The Person class is abstract. In the Person class, there is a reference variable called Gender which can be female, male and others. How can I write the reference variable Gender which has enumeration? how the reference variable can be extended in child class? Sorry if it is duplicate question and thank you in advance for your help.
public abstract class Person{
public static Gender gender;
class Gender{
}
public enum Gender{
female,male,others;
}
}
public class Minnesotan extends Person{
public Minnesotan(Gender gender){
super(gender);
}
}
答案1
得分: 2
开始枚举定义部分:
public enum Gender{
男性,
女性
}
您可以使用该枚举的引用,类型为 Gender
,可以是 男性
或者 女性
,就像其他变量一样。例如,
Gender 男性 = Gender.男性;
if (男性 == Gender.男性){
System.out.println("变量 男性 的值为 Gender.男性");
} else {
System.out.println("变量 男性 的值为 Gender.女性");
}
现在是 Person
类:
public abstract class Person{
public Gender gender;
}
静态修饰符被移除,因为每个 Person
实例应该拥有自己的性别。
最后是 Person
的实际实现,即 Minessotan
类:
public class Minnesotan extends Person{
public Minnesotan(Gender gender){
this.gender = gender;
}
}
为了创建一个 Minessotan
,它是一个 Person
,您必须提供它的性别,类型为 Gender
。就是这样。
英文:
Let's start with the enumeration,
public enum Gender{
Male,
Female
}
You can use references of that enumeration which will be of type Gender
and can be either Male
or Female
like any other variables, for example,
Gender male = Gender.MALE;
if (male == Gender.MALE){
System.out.println("Variable male has value Gender.MALE");
}else{
System.out.println("Variable male has value Gender.FEMALE");
}
Now the Person
class,
public abstract class Person{
public Gender gender;
}
Static modifier is removed because each instance of Person
should have each own gender.
And finally an actual implementation of Person
, a Minessotan
,
public class Minnesotan extends Person{
public Minnesotan(Gender gender){
this.gender = gender;
}
}
In order to create a Minnesotan
, which is a Person
, you must provide it's gender, which is of type Gender
. That's it.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论