JAVA基础学习笔记_枚举

文章目录

枚举

枚举就是在当前枚举类中只能有罗列出的几个实例

枚举的基本认识

复制代码
public enum A {
    //枚举类的第一行必须罗列的是枚举对象的名字
    //枚举就是在当前类A中示例对象只能有X,Y,Z这三个实例类
    X,Y,Z;
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

//使用枚举
public static void main(String[] args) {
	A a1 = A.X;
	System.out.println(a1);
	//在编译成class时,会自动添加values和valueOf,name(),ordinal()等方法
	A[] as = A.values();//取全部对象
	Arrays.stream(as).forEach(System.out::println);
	A a3 = A.valueOf("Z");
	System.out.println(a3.name());
	System.out.println(a3.ordinal());
}

抽象枚举

复制代码
public enum A {
    x(){
        @Override
        public void go() {
            System.out.println("x");
        }
    };
    public abstract void go();
}

枚举的使用场景

单例设计模式

复制代码
//枚举一个就是单例
public enum A {
    X;
    public void go(){
        System.out.println("单例");
    }
}

信息推荐

比如,当图书阅读软件向用户推送内容时,根据男女不同推送,搭配case选择就很优雅

当然这种也可以用常量去选择,有利有弊,各有千秋

常量可选更多,更灵活,枚举更死板,更有利于代码开发的规范

复制代码
public static void main(String[] args) {
	check(A.BOY);
}
public static void check(A sex){
	switch (sex){
		case BOY:
			System.out.println("Boy");
			break;
		case GIRL:
			System.out.println("Girl");
			break;
	}
}

public enum A {
    BOY,GIRL;
}
相关推荐
脆皮炸鸡7553 分钟前
库制作与原理~动态链接
linux·开发语言·经验分享·笔记·学习方法
掉鱼的猫8 分钟前
Spring AI 2.0 GA 倒计时:先别急,来看看 Java AI 框架的另一条路
java·openai·agent
Refrain_zc9 分钟前
Android 应用内 APK 安装全方案:从静默安装到普通安装的详解
java
nnsix18 分钟前
设计模式 - 工厂模式 笔记
笔记·设计模式
正儿八经的少年35 分钟前
Spring Boot 两种激活配置方式的作用与区别
java·spring boot·后端
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【52】Interrupts 中断机制:节点执行前后静态中断
java·人工智能·spring
疯狂成瘾者1 小时前
Spring Boot 项目中的 SMTP 邮件验证码服务技术解析
java·spring boot·后端
y = xⁿ1 小时前
Java并发八股学习日记
java·开发语言·学习
xifangge20251 小时前
【深度排障】从 OS 底层寻址剖析 javac 不是内部或外部命令 核心报错:变量空间隔离与自动化部署终极范式
java·开发语言·jdk·自动化
肖恩想要年薪百万1 小时前
JSP中常用JSTL标签
java·开发语言·状态模式