`
xiao1zhao2
  • 浏览: 40234 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java中枚举类型的使用

阅读更多

枚举类型是j2se在1.5引入的新的类型,通过关键字enum来定义,常用来存储一些常量.

 

1.定义一个简单的枚举类型
public enum Sex {
	MAN,
	WOMAN
}

 

枚举类型本质是类,编译此段代码会生成.class文件.
通过Sex.MAN来访问Sex中的成员,其返回值是Sex类型.

 

2.常用方法

静态的values()方法,可获取所有成员变量并以数组形式返回;从Object继承的toString()方法被重写;静态的valueOf()方法,可以尝试将指定的String类型转换为枚举类型;ordinal()方法,获取枚举成员的索引;compareTo()方法,比较两个枚举成员的顺序.

public class EnumDemo2 {
	public static void main(String[] args) {
		for (Sex sex : Sex.values()) {
			System.out.println(sex);
		}
	}
}

 

执行此段代码,可遍历输出枚举中的所有成员,运行结果:
MAN
WOMAN

 

3.在switch中应用

在switch中使用枚举类型,增加了程序的可读性.

public class EnumDemo3 {
	private enum Sex {
		MAN, WOMAN
	}

	public static void showSex(Sex sex) {
		switch (sex) {
		case MAN:
			System.out.println("男");
			break;
		case WOMAN:
			System.out.println("女");
			break;
		}
	}

	public static void main(String[] args) {
		showSex(Sex.WOMAN);
	}
}

 

运行结果:

 

此段代码中showSex()方法接收的变量必须是Sex枚举类型,如果输入其他类型的变量,编译器会报告错误;如果上述switch中加入了不属于Sex中的枚举值,编译器也会报告错误.注意,此段代码中枚举声明方式与声明内部类相同,编译完成后,会产生额外的.class文件,在本例中生成的是EnumDemo3$Sex.class.

 

4.深入枚举类型

使用enum定义的枚举类型都是继承java.lang.Enum类,每一个成员都是枚举类型的一个实例,默认是final的,同时也是public和static的,与类中的静态常量相同,可以通过类名直接使用.

4.1.在枚举中定义属性和方法
public enum Sex {
	MAN, WOMAN;
	public String name;

	public void show() {
		System.out.println(this.name);
	}
}

 

注意,枚举成员必须写在最前面,否则编译出错.

 

4.2.构造方法
public enum Sex {
	MAN, WOMAN;
	public String name;

	private Sex() {

	}

	private Sex(String name) {
		this.name = name;
	}
}

 

枚举类型的构造方法必须是私有的,可以形成重载;如果枚举中只含有一个成员,则与单例模式相似.

 

4.3.成员匿名类

每一个成员可以调用构造方法,定义属性和方法(暂时不知有何用处),重写枚举中的方法.

public enum Sex {
	MAN() {
		public void show() {
			System.out.println("man");
		}
	},
	WOMAN("name") {
		public int age;

		public void test() {

		}
	};

	private Sex() {

	}

	private Sex(String name) {
	}

	public void show() {
		System.out.println("sex");
	}
}

public class EnumDemo4 {
	public static void main(String[] args) {
		for (Sex sex : Sex.values()) {
			sex.show();
		}
	}
}

 

编译完成后,会生成Sex$1.class和Sex$2.class文件,运行结果:
man
sex

 

5.实现接口

由于枚举已经继承Enum类,不能在继承其他类,但可以实现接口.

public interface I {
	void i();
}

public enum Sex implements I {
	MAN() {
		public void i() {
			System.out.println("man");
		}
	},
	WOMAN() {
	};

	public void i() {
		System.out.println("sex");
	}
}

public class EnumDemo5 {
	public static void main(String[] args) {
		for (Sex sex : Sex.values()) {
			sex.i();
		}
	}
}

 

运行结果:
man
sex

 

6.在集合中使用

java.util.EnumSet和java.util.EnumMap是两个枚举集合.
EnumSet保证元素不重复;EnumMap中的key值是Enum类型,value值可以使任意类型.

 

小结:枚举类型与接口类型类似,是特殊的类,用来存储一些常量的集合.在switch中应用可提高程序的可读性.所有的枚举类型都继承自Enum类,可以有私有的构造方法以及属性和方法.可以实现接口,也可以在集合中应用.

0
0
分享到:
评论

相关推荐

    Java枚举类型Enum的用法

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

    Java中枚举类型的使用.docx

    本文将详细介绍如何在Java中使用枚举类型,并通过一个具体的例子来展示其优势。 #### 二、枚举类型概述 **枚举类型**是一种特殊的类,用于定义一组有限的固定常量。枚举类型可以提供更好的类型安全性和编译时检查...

    java枚举类型说明

    - **定义**: 使用`enum`关键字定义枚举类型,可以在枚举类型中定义一组固定的值,这些值都是该枚举类型的实例。 - **实例**: 枚举类型的每一个值都可以看作是该枚举类型的一个实例。例如,在上面的例子中,`Grade`...

    java中枚举的使用

    枚举的初始化通常是在枚举类型中定义常量时进行的,但也可以通过构造函数实现更复杂的初始化: ```java public enum Shape { CIRCLE(3.14), SQUARE(4); private double constant; Shape(double c) { this....

    简单总结java枚举类型

    Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用...

    理解java枚举类型

    Java枚举类型是Java语言中的一种特殊的类,用于定义一组固定的常量集合。它在Java中扮演着重要的角色,提供了一种安全、类型化的常量表示方式,比传统的final static变量更具有优势。理解Java枚举类型对于编写高质量...

    Java枚举类型.pdf

    总结起来,Java枚举类型是一个强大的工具,它可以替代`static final`常量来表示一组固定的值,提供类型安全、易于维护的代码。通过枚举,我们可以更方便地管理常量,减少错误,并增加代码的灵活性。枚举是Java中一个...

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

    在枚举类型中,还可以定义抽象方法,所有枚举常量必须实现这些方法。这种模式被称为"枚举伴生对象",可以用来为每个枚举常量提供不同的行为。例如: ```java public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY,...

    java中的枚举类型

    在 Java 中,我们可以使用 `enum` 关键词来定义枚举类型。枚举类型的定义方式类似于类别的定义,但是它只能包含常量。例如: ```java public enum Action { TURN_LEFT, TURN_RIGHT, SHOOT } ``` 在上面的示例中,...

    Java中枚举类型的一种使用方式

    例如,在添加或减少工站类型时,我们只需要在枚举类型中修改,而不需要修改大量的代码。 本文介绍了一种使用Java中枚举类型的方式,通过使用枚举类型,我们可以简化代码,提高代码的可读性和可维护性。

    全面掌握java枚举类型(enum-type)1

    Java 中使用关键字 enum 来定义一个枚举类型。例如: ```java public enum Season { SPRING, SUMMER, AUTUMN, WINTER; } ``` 特点 Java 定义枚举类型的语句很简约。它有以下特点: 1. 使用关键字 enum 2. 类型...

    如何使用Java枚举类型

    一个关于JAVA枚举类型的MHT文件,包含JAVA枚举类型的用法,以及JDK版本的问题。

    Java面试枚举从使用到原理

    枚举类型非常适合与Java的`switch`语句配合使用,因为它们之间的类型检查更为严格,确保了在枚举中定义的所有可能性都被覆盖。 ```java DayOfWeek day = DayOfWeek.MONDAY; switch (day) { case MONDAY: System....

    Java源码查看枚举类型定义.rar

    本资源"Java源码查看枚举类型定义.rar"包含了关于Java枚举类型的详细解释和实例,旨在帮助开发者深入理解这一特性。 首先,枚举类型在Java中通过关键字`enum`声明。例如: ```java public enum Color { RED, ...

    java枚举类型enum的使用

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

    java枚举结果类、根据状态值获取枚举值

    java枚举结果类、根据状态值获取枚举值 Controller: /** 模块类型枚举 */ model.addAttribute("mType", ModuleTypeEnum.ModuleTypeShow()); ftl: value="${mType.key}:${mType.value}” </#list>

    Java中的“枚举类型

    ### Java中的“枚举类型”知识点详解 #### 一、引言 在Java编程语言中,枚举(Enum)作为一种特殊的类,其设计初衷是为了更好地处理一组固定不变的常量集合。相较于传统的使用`static final`字段来表示常量的做法...

    JAVA枚举类型的用法详解

    下面我们将深入探讨Java枚举类型的常见用法。 首先,枚举类型在本质上等同于定义了一组静态常量。创建枚举类型的语法如下: ```java public enum Belle { para1, para2, para3, para4; } ``` 这会创建一个名为`...

    java枚举实例代码

    Java枚举(enum)是Java语言中的一种特殊数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中被引入,目的是为了更好地管理和使用常量,提高代码的可读性和安全性。在本实例代码中,...

    java枚举类型优秀源代码

    - **成员变量**:枚举类型中的每个成员都是一个实例,可以直接通过枚举类型名访问。 - **方法**:枚举可以像普通类一样包含方法,包括构造器、实例方法和静态方法。 - **自动实现接口**:枚举类型会自动实现`java....

Global site tag (gtag.js) - Google Analytics