目的
了解枚举
问题
声明一个学生类,包含学号、姓名、性别字段,其中性别字段定义成枚举类型。
分析
定义一个变量来表示性别的分类?请问该变量的类型使用什么?
使用int和String类型,且先假设使用int类型,因为分类情况是固定的,为了防止调用者乱创建类型,可
以把三种情况使用常量来表示。常量使用final修饰,并且使用大写字母组成,如果是多个单词组成,使用下划线分割。此时调用setSex方法传递的值应该是Sex类中三个常量之一。但是此时依然存在一个问题——依然可以乱传入参数比如100,此时就不合理了。
同理如果使用String类型,还是可以乱设置数据。那么说明使用int或String是类型不安全的。那么如果
使用对象来表示三种情况呢?
public class Sex{
public static final Sex MEN = new Sex();
public static final Sex WOMEN = new Sex();
public static final Sex NEUTRAL = new Sex();
private Sex()