IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JavaSE枚举类Enum -> 正文阅读

[Java知识库]JavaSE枚举类Enum

1、基本概念

1、当一个类的对象只有有限个,确定个时,我们把这个类称作枚举类。
在这里插入图片描述
2、当需要定义一组常量时,强烈建议使用枚举类

3、枚举类的实现
在这里插入图片描述

2、自定义枚举类

package com.example.java;

/**
 * 一、枚举类的使用
 * 1、枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类
 * 2、当需要定义一组常量时,强烈建议使用枚举类
 * 3、如果枚举类中只有一个对象、则可以作为单例模式的实现方式
 *
 * 二、如何定义枚举类
 * 方式一:在jdk5.0之前,自定义枚举类
 * 方式二:jdk5.0之后,可以使用enum关键字定义枚举类
 *
 * Author: 
 * DATE: 2022/4/2 22:42
 */
class seasonTest01 {
    public static void main(String[] args) {
        Season spring = Season.SPRING;
        System.out.println(spring);
    }
}
//自定义枚举类
class Season{
    //声明Season对象的属性
    private final String seasonName;
    private final String seasonDesc;

    //2、私有化类的构造器,并给对象属性赋值
    private Season(String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    //3、提供当亲枚举类的多个对象
    public static final Season SPRING = new Season("春天","吹暖花开");
    public static final Season SUMMER = new Season("夏天","夏日炎炎");
    public static final Season AUTUMN = new Season("秋天","秋高气爽");
    public static final Season WINTER = new Season("冬天","冰天雪地");

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "seasonName='" + seasonName + '\'' +
                ", seasonDesc='" + seasonDesc + '\'' +
                '}';
    }
}

在这里插入图片描述

3、使用enum关键字定义枚举类

package com.example.java;

/**
 * 使用enum关键字定义枚举类
 *
 * Author: 
 * DATE: 2022/4/2 22:42
 */
public class SeasonTest02 {
    public static void main(String[] args) {
        Season2 spring = Season2.SPRING;
        System.out.println(spring);
        //说明:定义的枚举类默认继承与于java.long.Enum类
        System.out.println(Season2.class.getSuperclass());//class java.lang.Enum
    }
}
//使用enum关键字定义枚举类
enum Season2 {
    //1、提供当前枚举类的对象,多个对象之间用逗号隔开,末尾的对象分号结束
    SPRING("春天","吹暖花开"),
    SUMMER("夏天","夏日炎炎"),
    AUTUMN("秋天","秋高气爽"),
    WINTER("冬天","冰天雪地");

    //2、声明Season对象的属性
    private final String seasonName;
    private final String seasonDesc;

    //3、私有化类的构造器,并给对象属性赋值
    private Season2(String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

//    @Override
//    public String toString() {
//        return "Season{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

在这里插入图片描述

4、枚举类的主要方法

在这里插入图片描述

4.1、枚举类的常用方法

在这里插入图片描述

package com.example.java;

/**
 * 使用enum关键字定义枚举类
 *
 * Author: cui
 * DATE: 2022/4/2 22:42
 */
public class SeasonTest02 {
    public static void main(String[] args) {
        //1、toString();
        System.out.println("*************toString();**************");
        Season2 spring = Season2.SPRING;
        System.out.println(spring);
        
        //2、values()
        System.out.println("*************values()**************");
        Season2[] values = Season2.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i]);
        }

        //3、valueOf(String objName):返回枚举类中对象名是objName的对象
        System.out.println("*************valueOf(String objName)**************");
        Season2 winter = Season2.valueOf("WINTER");
        System.out.println(winter);
    }
}
//使用enum关键字定义枚举类
enum Season2 {
    //1、提供当前枚举类的对象,多个对象之间用逗号隔开,末尾的对象分号结束
    SPRING("春天","吹暖花开"),
    SUMMER("夏天","夏日炎炎"),
    AUTUMN("秋天","秋高气爽"),
    WINTER("冬天","冰天雪地");

    //2、声明Season对象的属性
    private final String seasonName;
    private final String seasonDesc;

    //3、私有化类的构造器,并给对象属性赋值
    private Season2(String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

//    @Override
//    public String toString() {
//        return "Season{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

在这里插入图片描述

5、枚举类实现接口

package com.example.java;

import java.lang.ref.SoftReference;
import java.sql.SQLOutput;

/**
 * 使用enum关键字定义枚举类
 * 三、Enum类中的常用方法
 *  values()方法:返回枚举类型的对象数组,该方法可以很方便地遍历所有的枚举值
 *  valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象
 *  toString():返回的是当前枚举类对象常量的名称
 *
 * 四、使用enum关键字定义枚举类实现接口的情况
 *
 * Author: cui
 * DATE: 2022/4/2 22:42
 */
public class SeasonTest02 {
    public static void main(String[] args) {        
        //2、values()
        System.out.println("*************values()**************");
        Season2[] values = Season2.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i]);
            values[i].show();
        }
    }
}

//接口
interface info{
    void show();
}

//使用enum关键字定义枚举类
enum Season2 implements info{
    //1、提供当前枚举类的对象,多个对象之间用逗号隔开,末尾的对象分号结束
    SPRING("春天","吹暖花开"){
        @Override
        public void show() {
            System.out.println("这是春季");
        }
    },
    SUMMER("夏天","夏日炎炎"){
        @Override
        public void show() {
            System.out.println("这是夏季");
        }
    },
    AUTUMN("秋天","秋高气爽"){
        @Override
        public void show() {
            System.out.println("这是秋季");
        }
    },
    WINTER("冬天","冰天雪地"){
        @Override
        public void show() {
            System.out.println("这是冬季");
        }
    };

    //2、声明Season对象的属性
    private final String seasonName;
    private final String seasonDesc;

    //3、私有化类的构造器,并给对象属性赋值
    private Season2(String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

//    @Override
//    public void show() {
//        System.out.println("这是一个季节");
//    }

}

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 11:57:16  更:2022-04-04 12:01:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:01:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码