枚举类(附练习)


枚举类是一种特殊形式的Java类,枚举类的对象个数是有限且明确的

枚举特征:

  1. 关键字enum

  2. 构造方法必须是private, 如果不写,默认就是private

  3. 包含有限个数的本类静态的常量, 只需要写常量名, 默认的public static final 修饰, 调用本类无参构造

  4. 枚举类的父类: java.lang.Enum类

  5. 枚举是一个特殊的类, 可以包含属性和方法

优点:

1.提高代码的维护性,确保变量合法

 2.提高代码可读性

 3.提高代码键入

 缺陷:

  1. 类型不安全。若一个方法中要求传入季节这个参数,用常量的话,形参就是int类型,开发者传入任意类型的int类型值就行,但是如果是枚举类型的话,就只能传入枚举类中包含的对象。

  2. 没有命名空间。开发者要在命名的时候以SEASON_开头,这样另外一个开发者再看这段代码的时候,才知道这四个常量分别代表季节。

注意:

     1. 实际上在第一行写枚举类实例的时候,默认是调用了构造器的,所以此处需要传入参数,               因为没有显式申明无参构造器,只能调用有参数的构造器。

     2.构造器需定义成私有的,这样就不能在别处申明此类的对象了。枚举类通常应该设计成不可            变类,它的Field不应该被改变,这样会更安全,而且代码更加简洁。所以我们将Field用                  private final修饰。

 练习:

根据交通信号灯颜色决定汽车停车、行驶和慢行

提示:使用枚举实现, 使用枚举定义交通灯的颜色

package com.fs.Demo1;

public class Test2 {
    public static void main(String[] args) {
        TrafficLight trafficLight = TrafficLight.RED;
        switch (trafficLight){
            case RED:
                System.out.println("汽车停车!");
                break;
            case GREEN:
                System.out.println("汽车行驶!");
                break;
            case YELLOW:
                System.out.println("汽车慢行!");
        }
    }
}
package com.fs.Demo1;

public enum TrafficLight {
//信号灯的颜色
    RED,GREEN,YELLOW;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值