返回顶部
首页 > 资讯 > 精选 >Java枚举案例分析
  • 299
分享到

Java枚举案例分析

2023-06-30 16:06:43 299人浏览 薄情痞子
摘要

本文小编为大家详细介绍“Java枚举案例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java枚举案例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。枚举就是要让某个类型的变量的取值只能为若干个固定值中的

本文小编为大家详细介绍“Java枚举案例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java枚举案例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Java枚举案例分析

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则编译器就会报错,枚举可以让编译器在编译时就可以控制源程序赋给的非法值,使用普通变量的方式在开发阶段无法实现这一目标。
jdk1.5之后,使用关键字enum定义一种新的类型,称为枚举类型
枚举(enum)和类(class)、接口(interface)是同一级别

案例引入

定义一个color,只能定义红、绿、蓝三种颜色

普通方法
Java枚举案例分析
那么如何解决这种问题,让color只能在三种颜色中选一种???

Enum类和enum关键字

使用enum关键字定义的枚举类,实际上就相当于定义了一个类,此类继承课Enum类而已。

public enum Color {    RED,    GREEN,    BLUE;}

Java枚举案例分析

枚举常用的方法

protected Enum(String name,int ordinal)此构造方法不能被外部直接调用,只能被其子类访问,此构造方法为自动调用
public final String name()返回枚举的名字
public String toString()返回枚举的名字
public final int ordinal()返回枚举的序号,默认从0开始
public final boolean equals(Object other)判断两个枚举是否相同

代码

public class EnumTest {    public static void main(String[] args) {        //定义一个color变量,只能设置为RED、GREEN、BLUE        Color color = Color.BLUE;        System.out.println(color);        System.out.println(color.name());        System.out.println(color.toString());//三种方式都是打印名字        System.out.println(color.ordinal());//返回枚举的序号RED--0、GREEN--1、BLUE--2        Color[] values = Color.values();//返回所有枚举类型        System.out.println(Arrays.toString(values));    }}

Java枚举案例分析

枚举的基本操作

带构造方法的枚举

枚举的本质是一个继承Enum类的子类,JVM编译器把枚举编译后生成一个final class

枚举不允许从外部调用,所以只能是private修饰
Java枚举案例分析
构造方法只能在对象中调用
Java枚举案例分析

public enum Color {    RED(10),    GREEN(20),    BLUE;    private int Number;//属性    private Color() {//默认构造方法        System.out.println("无参构造器被调用了!!!");    }    private Color(int Number) {        this.Number = Number;        System.out.println("有参构造器被调用了!!!");    }        public int getNumber(){        return Number;}}

主方法

public class EnumTest {    public static void main(String[] args) {        Color color = Color.RED;        System.out.println(color.name());        System.out.println(color.getNumber());//获取Number的值    }}

Java枚举案例分析

枚举实现接口

在枚举类型中,可以继承接口,实现接口有两种方法,要么在枚举类中实现该方法,或者在对象内部实现该方法

方式1:在枚举对象内部实现接口中的方法

interface info{    public String getColor();}public enum Color implements info{    RED{        @Override        public String getColor() {return "红色";}    },    GREEN{        @Override        public String getColor() {return "绿色";}    },    BLUE{        @Override        public String getColor() {return "蓝色";}    };}

方式2:在枚举类中实现接口中的方法

interface info{    public String getColor();}public enum Color implements info{    RED,GREEN,BLUE;        @Override    public String getColor() {        return null;    }}

主方法

public class EnumTest {    public static void main(String[] args) {        Color color = Color.RED;        System.out.println(color.getColor());    }}

Java枚举案例分析

枚举实现抽象方法

在枚举类型中,可以定义抽象方法,具体由对象实现

枚举类

public enum Color {    RED{        @Override        public String getColor() {return "红色";}    },    GREEN{        @Override        public String getColor() {return "绿色";}    },    BLUE{        @Override        public String getColor() {return "蓝色";}    };    //在枚举中定义一个抽象方法,通过枚举对象实现    public abstract String getColor();}

主方法

public class EnumTest {    public static void main(String[] args) {        Color color = Color.BLUE;        System.out.println(color.getColor());    }}

Java枚举案例分析

枚举实现单例模式

枚举是用来保证数据在指定范围内的值,如果枚举中只有一个类型(一个值)的话,枚举中就只有一个对象,那么就可以实现单例模式。

枚举类

public enum Singletion {    SINGLETION;    public void Method(){        System.out.println("使用枚举实现单例模式!!!");    }}

主方法

public class EnumTest {    public static void main(String[] args) {        Singletion singletion=Singletion.SINGLETION;        singletion.Method();    }}

Java枚举案例分析

集合类对枚举的支持

在JDK1.5之后,对于Set和Map接口而言又增加了两个新的子类:EnumSetEnumMap两个子类

EnumSet

一个专门Set实现与枚举类型一起使用。 枚举集中的所有元素都必须来自创建集合时明确或隐式指定的单个枚举类型
EnumSet是一个抽象类,不能直接创建实例对象,但是可以通过方法来使用。Java枚举案例分析

EnumSet.allOf(Class<E> elementType)把一个枚举类型全部填充到集合中去
public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)创建与指定枚举集具有相同元素类型的枚举集,最初包含此类型的所有元素,该元素 不包含在指定的集合中。
public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)创建与指定的枚举集相同的元素类型的枚举集,最初包含相同的元素(如果有)

代码

import java.util.EnumSet;public class EnumTest {    public static void main(String[] args) {        EnumSet<Color> set = EnumSet.allOf(Color.class);//把一个枚举类型全部填充到集合中去        for (Color c : set) {            System.out.println(c.name());        }    }}

Java枚举案例分析

EnumMap

EnumMap一个专门Map实现与枚举类型键一起使用。 枚举映射中的所有密钥必须来自创建映射时明确或隐式指定的单个枚举类型。 枚举地图在内部表示为数组。 这种表示非常紧凑和高效。

代码

import java.util.EnumMap;public class EnumTest {    public static void main(String[] args) {        EnumMap<Color, String> map = new EnumMap<>(Color.class);        map.put(Color.RED, "红色");        map.put(Color.GREEN, "绿色");        map.put(Color.BLUE, "蓝色");        System.out.println(map.get(Color.RED));    }

Java枚举案例分析

读到这里,这篇“Java枚举案例分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Java枚举案例分析

本文链接: https://lsjlt.com/news/330217.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java枚举案例分析
    本文小编为大家详细介绍“Java枚举案例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java枚举案例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。枚举就是要让某个类型的变量的取值只能为若干个固定值中的...
    99+
    2023-06-30
  • C#枚举类型举例分析
    本篇内容主要讲解“C#枚举类型举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型举例分析”吧!C#枚举类型实例演示  using System&nb...
    99+
    2023-06-17
  • java中枚举类型定义和重写枚举的示例分析
    这篇文章将为大家详细讲解有关java中枚举类型定义和重写枚举的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是枚举类型枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用...
    99+
    2023-05-30
    java
  • C#枚举类型的实例分析
    本篇内容主要讲解“C#枚举类型的实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的实例分析”吧!C#枚举类型实例是你学习C#枚举类型的捷径,那让我们开始吧:public&nbs...
    99+
    2023-06-17
  • Java基础之枚举Enum类案例详解
    目录一、文章序言二、代码实践三、面试相关一、文章序言 Java中引用类型:数组、类、接口、枚举、注解 枚举这个既熟悉又陌生的东西具体再哪里可以使用呢? 什么是枚举? 枚举是一个引用...
    99+
    2024-04-02
  • Laravel枚举包standards实例代码分析
    这篇文章主要讲解了“Laravel枚举包standards实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Laravel枚举包standards实例代码分析”吧!PrinsFran...
    99+
    2023-07-04
  • JAVA 枚举单例模式及源码分析的实例详解
    JAVA 枚举单例模式及源码分析的实例详解      单例模式的实现有很多种,网上也分析了如今实现单利模式最好用枚举,好处不外乎三点:线程安全不会因为序列化而产生新实例防止反射攻击但是貌似没...
    99+
    2023-05-31
    java 枚举 单例
  • java枚举
    目录 1.枚举的简介 2.枚举的形式和常用方法 3.枚举中的构造方法 4.练习实例 1.枚举的简介 枚举就是相当于一种来存放常量的特殊的类,是一种新的常量定义方式,提供了安全检查功能,简而言之就是把常量搞的有对象的特性了,类型也是和类...
    99+
    2023-09-02
    java 开发语言
  • 如何分析TypeScript枚举类型
    这篇文章给大家介绍如何分析TypeScript枚举类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.概述所谓的枚举类型就是为一组数值赋予名字。enum类型在C++、Java语言中比较常见,TypeScript在Ja...
    99+
    2023-06-22
  • Java浅析枚举类的使用
    目录1、枚举规则2、枚举的个数3、枚举类中常用函数4、实现枚举类5、枚举类的使用注意事项概念:有enum关键字修饰的类,成为枚举类 1、枚举规则 枚举类的对象可以有类里面定义,不支持...
    99+
    2024-04-02
  • java枚举怎么实现单例
    这篇文章主要介绍了java枚举怎么实现单例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明在功能上类似于 public 字段,它除了更简洁外,还自带序列化机制,并且即使...
    99+
    2023-06-15
  • Java多线程案例之单例模式懒汉+饿汉+枚举
    目录前言:1.单例模式概述2.单例模式的简单实现2.1饿汉模式2.2懒汉模式2.3枚举实现单例模式前言: 本篇文章将介绍Java多线程中的几个典型案例之单例模式,所谓单例模式,就是一...
    99+
    2024-04-02
  • 【Java】枚举类型
    文章目录 一、枚举类型1.1 什么是枚举类型1.2 Java中枚举类型的特点 二、枚举类型的使用2.1 创建语法2.2 常用方法2.3 使用案例 三、枚举的优缺点 一、枚举类型 ...
    99+
    2023-09-02
    java enum 枚举
  • Java乘积题举例分析
    本篇内容介绍了“Java乘积题举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!面试题:颠倒乾坤在一棵...
    99+
    2024-04-02
  • hadoop的wordcount java举例分析
    本篇内容介绍了“hadoop的wordcount java举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!导入hadoop需要用到的包...
    99+
    2023-06-03
  • Mac OS X NSArray 枚举性能研究的示例分析
    Mac OS X NSArray 枚举性能研究的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一天,我在思考 NSArray 枚举方法 (也称迭代方法): Mac ...
    99+
    2023-06-17
  • C语言中枚举和联合体的示例分析
    这篇文章主要介绍了C语言中枚举和联合体的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。枚举什么是枚举?顾名思义,就是一一列举,把所有的情况,所有的取值,一一列举出来。...
    99+
    2023-06-25
  • SpringBoot之使用枚举参数案例详解
    接口开发过程中不免有表示类型的参数,比如 0 表示未知,1 表示男,2 表示女。通常有两种做法,一种是用数字表示,另一种是使用枚举实现。 使用数字表示就是通过契约形式,约定每个数字表...
    99+
    2024-04-02
  • Java冒泡排序举例分析
    这篇文章主要讲解了“Java冒泡排序举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java冒泡排序举例分析”吧!冒泡排序原理①比较相邻的元素,如果前一个元素比后一个元素大,则交换这两...
    99+
    2023-06-25
  • Java选择排序举例分析
    这篇文章主要介绍“Java选择排序举例分析”,在日常操作中,相信很多人在Java选择排序举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java选择排序举例分析”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作