接口或类中的Java枚举放置

时间:2017-01-17 22:44:08

标签: java class enums interface

我试图理解Java中的枚举,但目前找不到解释我问的问题的帖子。

我有一个Person接口和一个PersonEO类。 Person接口的两种方法是setGender和getGender。我想把性别作为一个枚举。

我是否在界面中创建枚举并将其转移到课程中,还是在课程中创建枚举?

这是我一直在尝试的但是无法让enum正确地传递给班级,并且不太了解它将如何流经该程序。

public interface Person{
    public enum gender{
    Female,
    Male,
    Unknown;

       private String gender;

       public String getGender(){
       }

       void setGender(){  
       }
}


------------------------------------------------------


public class PersonEO implements Person {
   //Both override methods are not seen as methods from the interface

   @Override
   public String getGender() {
       return gender;
   }

   @Override
   public void setGender() {
       //Not sure how to set the gender from the enum
       this.gender = gender;
   }
}

请举例说明。

1 个答案:

答案 0 :(得分:5)

枚举,接口和类都是单独的类型,通常应该在单独的文件中。以下是一些示例定义:

enum Gender {
    MALE, FEMALE, UNKNOWN;
}

interface Person {
    void setGender(Gender gender);
    Gender getGender();
}

class PersonImpl implements Person {
    private Gender gender;

    @Override
    public void setGender(Gender gender) {
        this.gender = gender;
    }

    @Override
    public Gender getGender() {
        return this.gender;
    }
}