`

Java中Enum的用法

 
阅读更多
1、Company枚举类就是class,而且是一个不可以被继承的final类。

其枚举值(RED,BLUE...)都是Company类型的类静态常量, 我们可以通过下面的方式来得到Company枚举类的一个实例:
Company c = Company.ZHEJIANG;  

注意:这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。

2、即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。但是,枚举类的构造器有很大的不同:

(1) 构造器只是在构造枚举值的时候被调用。

ZHEJIANG("浙江", 7),
	HENAN("河南", 8);
	
	
	private Company(String name, int index){
		this.name = name; 
		this.index = index;
	}
	
	public String toString(){
		return this.index + ":" + this.name ;
	}
	
	/**
	 * 获取公司名称
	 * @param index
	 * @return
	 */
	public static String getCompanyName(int index){
		for(Company c: Company.values()){
			if(c.getIndex()==index){
				return c.getName();
			}
		}
		return null;
	}
	
	private String name;
	private int index;

(2) 构造器只能私有private,绝对不允许有public构造器。 这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。

但枚举类的方法和数据域可以允许外部访问。
Company com = Company.ZHEJIANG;
System.out.println(com.toString());


3、所有枚举类都继承了Enum的方法,下面我们详细介绍这些方法。

(1) ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。

Company.ZHEJIANG.ordinal(); //返回结果:0  
Company.HENAN.ordinal(); //返回结果:1 

(2) compareTo()方法: Enum实现了java.lang.Comparable接口,因此可以比较象与指定对象的顺序。Enum中的compareTo返回的是两个枚举值的顺序之差。当然,前提是两个枚举值必须属于同一个枚举类,否则会抛出ClassCastException()异常。(具体可见源代码)
Company.ZHEJIANG.compareTo(Company.ZHEJIANG); //返回结果 -1 

(3) values()方法: 静态方法,返回一个包含全部枚举值的数组。
for(Company c : Company.values()){
			System.out.println(c);
		}


(4) toString()方法: 返回枚举常量的名称。

(5) valueOf()方法: 这个方法和toString方法是相对应的,返回带指定名称的指定枚举类型的枚举常量。

Company.valueOf("HENAN")

(6) equals()方法: 比较两个枚举类对象的引用。

//JDK源代码:        
public final boolean equals(Object other) {    
        return this==other;    
} 

4、枚举类可以在switch语句中使用。

Company c = Company.ZHEJIANG;  
		switch(c){  
		        case ZHEJIANG: System.out.println("it's ZHEJIANG");break;  
		        case HENAN: System.out.println("it's HENAN");break;  
		} 
分享到:
评论

相关推荐

    Java枚举类型Enum的用法

    接下来,我们将深入探讨Java枚举类型的使用方法及其相关知识点。 1. **枚举的声明与初始化** 枚举类型的声明方式类似于类,但以`enum`关键字开头。例如: ```java enum Color { RED, GREEN, BLUE } ``` 这里...

    Java enum的用法详解

    Java enum 的用法详解 Java enum(枚举)是一种特殊的数据类型,用于定义一组固定的常量。从 JDK 1.5 开始,Java 引入了 enum 机制,解决了传统的常量定义方式的不足。 用法一:常量 在 JDK 1.5 之前,我们定义...

    Java中的Enum的使用与分析

    ### Java中的Enum使用与分析 #### 一、概述 在Java编程语言中,`Enum`是一种特殊的数据类型,用于表示一组固定的常量值。通过枚举(`enum`),开发者可以更加直观地定义一系列预定义的值,并为这些值提供类型安全...

    java中enum枚举的详细用法

    Java中的枚举(enum)类型是在JDK 1.5版本引入的一个强大的特性,它用于定义一组相关的常量。在C/C++等语言中,枚举通常用来表示一组具有固定值的常量集合,但在Java中,枚举不仅限于此,它提供了更多的功能和灵活性...

    java 中enum的使用方法详解

    下面我们将深入探讨enum的使用方法。 1. **定义枚举** 定义枚举的关键字是`enum`,例如: ```java public enum WeekDays { MON, TUE, WED, THU, FRI, SAT, SUN; } ``` 这里我们创建了一个名为`WeekDays`的...

    Java Enum使用Demo源码

    本篇将通过"Java Enum使用Demo源码"深入探讨Java枚举的用法。 首先,枚举在Java中是一个类,可以通过`enum`关键字来声明。例如,我们可以创建一个表示星期的枚举类型: ```java public enum WeekDay { MONDAY, ...

    Java中的Enum枚举用法.doc

    ### Java中的Enum枚举用法详解 #### 一、引言 在Java编程语言中,枚举(Enum)是一种特殊的数据类型,它被用来表示一组固定的常量集合。相比于使用常量接口或字符串来表示固定集合,枚举提供了更加安全且易于管理的...

    java枚举类型enum的使用

    ### Java 枚举类型 enum 的使用详解 #### 一、枚举类型概述 在 Java 中,枚举(enum)是一种特殊的类,它被用来表示一组固定的常量值。枚举类型自 JDK 1.5 开始引入,为开发者提供了一种更加安全、简洁的方式来...

    Java中enum的用法.pdf

    枚举实例可以在构造方法中接受参数并存储状态。 4. **枚举的遍历** 我们可以通过`values()`方法来获取枚举的所有实例,并进行遍历,如下所示: ```java for (WeekDay day : WeekDay.values()) { System.out....

    高阶Java-Java枚举类型 enum 应用详解

    在Java编程语言中,枚举(enum)是一种特殊的类,用于定义一组固定的常量。它在许多场景下比使用常量或int类型的硬编码值更安全、更具可读性。本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用...

    java的Enum

    ### Java的Enum知识点详解 #### 一、枚举的基本概念 在Java中,`enum`(枚举)是一种特殊的类,用于定义一组常量值。它可以帮助开发者限制一个变量的可能值,使其只能从预定义的一组选项中选择。枚举提供了一种更...

    Java enum的用法详解.docx

    下面我们将详细探讨Java enum的四种常见用法。 1. 定义常量: 在Java 1.5之前,我们通常使用`public static final`关键字来定义常量,但这种方式存在一些局限。枚举提供了一种将相关常量分组的方式,例如定义颜色:...

    java下的enum介绍

    根据提供的文件信息,这里将详细解释Java中的枚举(enum)类型,并且深入探讨其用法、特性以及在实际编程中的应用。 ### Java中的枚举(enum) #### 1. 枚举概述 枚举(enum)是Java 1.5版本引入的一种新数据类型...

    Enum的用法

    ### Enum的深度解析与应用技巧 #### 一、Enum的本质与特性 `Enum`,作为Java语言中的一个关键字,自JDK 5.0引入以来,便赋予了开发者一种全新的数据类型——枚举类型,其设计初衷在于为编程提供更安全、更简洁的...

    java中enum的用法

    以下是关于Java中`enum`的详细用法: 1. **基本用法** 枚举的基本定义方式如下: ```java enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; } ``` 枚举中的每个元素都是一个...

    Java中的枚举类型Enum示例源代码

    Java中的枚举类型`Enum`是面向对象编程中一种强大的工具,它允许程序员定义自己的常量集合。在Java中,枚举类型不是简单的常量数组,而是一种完整的类,具有类的所有特性,如方法、构造函数和继承。下面将详细探讨`...

    java enum 枚举的spring boot2.x完美实现demo源码

    综上所述,`java enum 枚举的spring boot2.x完美实现demo源码`示例主要展示了如何在Spring Boot 2.x项目中使用枚举类型,包括枚举的定义、属性和方法的添加,以及如何在实际业务场景中应用枚举,如与数据库的交互和...

Global site tag (gtag.js) - Google Analytics