Java复习-26-枚举

枚举(替换多例设计)

目的(使用场景)

不用也没啥

定义一个描述性别的类,那么该对象只有两个:男、 女。或者描述颜色基色的类,可以使用: 红色、绿色、蓝色。

功能

用于定义有限个数对象的一种结构(多例设计进化版)

方法

enum 关键字

提供有enum的关键字,直接放在枚举类前。

java 复制代码
enum Color{ // 枚举类
    RED,GREEN,BLUE ; // 实例化对象
}
public class JavaDemo {
    public static void main(String args[]) {
        Color c = Color.RED; // 获取实例化对象
        System.out.println(c);
    }
}

values 方法

可通过 values() 方法获得其中所有的内容。

java 复制代码
enum Color{ // 枚举类
    RED,GREEN,BLUE ; // 实例化对象
}
public class JavaDemo {
    public static void main(String args[]) {
        for (Color c : Color.values()){
            System.out.println(c);
        }
    }
}

应用

枚举与 switch 处理

java 复制代码
enum Color{ // 枚举类
    RED,GREEN,BLUE ; // 实例化对象
}
public class JavaDemo {
    public static void main(String args[]) {
        Color c = Color.RED; // 获取实例化对象
        switch(c) { // 直接支持枚举
            case RED:
                System.out.println("红色");
                break;
            case GREEN:
                System.out.println("绿色");
                break;
            case BLUE:
                System.out.println("蓝色");
                break;
        }
    }
}

实例应用

定义 person 类中,性别使用枚举类型。

java 复制代码
enum Sex {
    MALE("男"), FEMALE("女");
    private String title;
    private Sex(String) {
        this.title = title;
    }
    public String toString(){
        return this.title;
    }
}
class Person {
    private String name;
    private int age;
    private Sex sex;
    public Person(String name, int age, Sex sex){
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public String toString() {
        return "姓名: " + this.name + "、年龄:" + this.age + "、性别:" + this.sex;
    }
}
public class JavaDemo {
    public static void main(String args[]) {
        System.out.println(new person("张三", 24, Sex.MALE));  // 此处传入的参数就必须是由枚举中来
    }
}

对于该程序而言,不用枚举也能实现,因此对于枚举来说,愿意使用就使用,不愿意使用就不用。

相关推荐
Billy121384 分钟前
Day25-编译期计算与 constexpr if:跨越编译与运行的边界
开发语言·c++进阶学习
xbgRS18 分钟前
RocketMQ中的broker
java·rocketmq
小小龙学IT22 分钟前
第七节 C++ 与 QML 交互
开发语言·qt
晓晓_za89866837 分钟前
Geo 优化源码二次开发:自定义地域规则改造实操文档
java·开发语言·搜索引擎·ci/cd·矩阵
摇滚侠37 分钟前
《SpringBoot 3:入门与应用实战》第 8 章 AOP 的进阶机制和应用 阅读笔记 16
java·spring boot·笔记
AI人工智能+电脑小能手1 小时前
大白话说Java设计模式-38-迭代器模式(业务实战篇)
java·设计模式·迭代器模式·stream·遍历封装·集合通用·分页遍历
QQ_21696290961 小时前
【源码编号:project86570】SpringBoot电影院在线选座售票系统:电影排片、在线选座、订单购票、后台管理完整实战
java·spring boot·后端
ShineWinsu1 小时前
对于TRAE中配置Qt的解析
开发语言·c++·ide·vscode·qt·ai·trae
谢亮_vipxieliang1 小时前
手机号验证技术方案:号段规则与正则表达式
java·服务器·spring boot·正则表达式·hibernate
wang09072 小时前
自己动手写一个tomcat之7监听器和过滤器
java·tomcat