【问题标题】:enumeration for reference variable in JavaJava中引用变量的枚举
【发布时间】:2020-05-30 20:05:25
【问题描述】:

我正在学习参考变量。如果我有两个类:假设一个是 Person,另一个是 Minnesotan,它扩展了 Person 类。 Person 类是抽象的。在 Person 类中,有一个名为 Gender 的引用变量,可以是女性、男性等。如何编写具有枚举的引用变量 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);
    }

}

【问题讨论】:

  • 对不起,我不明白这个问题。你到底想在那里发生什么?另外,我认为 Person 中的 gender 变量不应该是静态的,因为它属于类的每个实例。
  • 首先,删除 Gender 类。
  • 其次,在Person 之外,Gender 枚举应该被寻址为Person.Gender
  • Person.Gender 是引用变量吗?我不明白。你能详细解释一下吗?如果 Person 必须有 Gender 性别怎么办?就像 int num 一样。

标签: java


【解决方案1】:

让我们从枚举开始,

public enum Gender{
 Male,
 Female
}

您可以使用该枚举的引用,其类型为 Gender,并且可以是 MaleFemale,例如任何其他变量,

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");
}

现在是Person 类,

public abstract class Person{
 public Gender gender;
}

静态修饰符被​​移除,因为Person 的每个实例都应该有各自的性别。

最后是Person 的实际实现,Minessotan

public class Minnesotan extends Person{
 public Minnesotan(Gender gender){
     this.gender = gender;
 }
}

要创建Minnesotan,即Person,您必须提供其性别,即Gender 类型。就是这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多