`

枚举基本用法demo

 
阅读更多
package enums;

import java.util.EnumMap;
import java.util.EnumSet;

public enum ProductTypeEnum {
	
	//枚举,相当于ProductTypeEnum的实例,里面参数分别为产品类型代码和产品类型名称
	OVERSEAPRODUCT(1 ,"海外产品" , "overseaProduct") {
		@Override
		public String speakProductType() {
			return "我是海外产品";
		}
	},
	COUNTRYPRODUCT(2 , "国内产品" , "countryProduct") {
		@Override
		public String speakProductType() {
			return "我是国内产品";
		}
	},
	HKPRODUCT(3 , "香港产品" , "hkProduct") {
		@Override
		public String speakProductType() {
			return "我是香港产品";
		}
	},
	MACAUPRODUCT(4 , "澳门产品" , "macauProduct") {
		@Override
		public String speakProductType() {
			return "我是澳门产品";
		}
	};
	
	private int code;//私有属性
	private String name;
	private String englishName;
	
	ProductTypeEnum(int code , String name , String englishName){//构造方法,必须是protected或者private
		this.code = code;
		this.name = name;
		this.englishName = englishName;
	}
	
	//每一个枚举成员就有了自己的方法,可以定义多个方法,方法必须以抽象方法的形式作声明(例如 abstract String event();)
	//一个方法一旦定义了就必须在每一个枚举成员中得到实现。
	public abstract String speakProductType();

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public String getEnglishName() {
		return englishName;
	}

	public void setEnglishName(String englishName) {
		this.englishName = englishName;
	}
	
	//根据传入的值,遍历枚举类型(values()),
	public static ProductTypeEnum fromValue(String englishName){
		for (ProductTypeEnum productTypeEnum : ProductTypeEnum.values()) {
			if (productTypeEnum.englishName.equals(englishName)) {
				return productTypeEnum;
			}
		}
		return null;
	}
	

	
	public static void main(String[] args) {
		
		//switch case 使用
		ProductTypeEnum pEnum = fromValue("overseaProduct");
		switch (pEnum) {
		case OVERSEAPRODUCT:
			System.out.println("这是一个海外产品!");
			break;
		case COUNTRYPRODUCT:
			System.out.println("这是一个国内产品!");
			break;
		case HKPRODUCT:
			System.out.println("这是一个香港产品!");
			break;
		case MACAUPRODUCT:
			System.out.println("这是一个澳门产品!");
			break;
		default:
			System.out.println("这不是一个正常产品!");
			break;
		}
		
		//enum的遍历
		System.out.println("-------------------------------------------");
		for (ProductTypeEnum productTypeEnum : ProductTypeEnum.values()) {
			System.out.println(productTypeEnum.code + "----" + productTypeEnum.englishName + "----" + productTypeEnum.name);
			System.out.println("----" + productTypeEnum.speakProductType());
		}
		
		//EnumSet
		System.out.println("--------------------------------------------");
		EnumSet<ProductTypeEnum> productTypeEnumSet = EnumSet.allOf(ProductTypeEnum.class);
		for (ProductTypeEnum productTypeEnum : productTypeEnumSet) {
			System.out.println(productTypeEnum);
		}
		
		//EmunMap
		System.out.println("--------------------------------------------");
		EnumMap<ProductTypeEnum,String> productTypeEnumMap = new EnumMap<ProductTypeEnum, String>(ProductTypeEnum.class);
		productTypeEnumMap.put(ProductTypeEnum.COUNTRYPRODUCT, "国内");
		productTypeEnumMap.put(ProductTypeEnum.HKPRODUCT, "香港");
		productTypeEnumMap.put(ProductTypeEnum.MACAUPRODUCT, "澳门");
		productTypeEnumMap.put(ProductTypeEnum.OVERSEAPRODUCT, "海外");
		for (ProductTypeEnum productTypeEnum : ProductTypeEnum.values()) {
			System.out.println(productTypeEnum.name() + "-----" + productTypeEnumMap.get(productTypeEnum));
		}
	}
}

   输出 :

这是一个海外产品!
-------------------------------------------
1----overseaProduct----海外产品
----我是海外产品
2----countryProduct----国内产品
----我是国内产品
3----hkProduct----香港产品
----我是香港产品
4----macauProduct----澳门产品
----我是澳门产品
--------------------------------------------
OVERSEAPRODUCT
COUNTRYPRODUCT
HKPRODUCT
MACAUPRODUCT
--------------------------------------------
OVERSEAPRODUCT-----海外
COUNTRYPRODUCT-----国内
HKPRODUCT-----香港
MACAUPRODUCT-----澳门

    参考链接:http://www.ibm.com/developerworks/cn/java/coretech/java-lang.html

分享到:
评论

相关推荐

    Delphi 枚举类型操作 Demo

    演示如何操作Delphi 的枚举类型。 1. 包含源代码; 2. 包含执行程序 3. 演示如下函数如何使用:GetEnumName、GetEnumProp、GetEnumValue、SetEnumProp 4. 非常简单,一看就会。

    枚举类型应用小Demo

    枚举类型(Enum)在Java编程语言中是一种强大的工具,特别是在Android应用开发中,它可以用于定义一组固定的常量集合,提供了类型安全和易于使用的特性。在这个"枚举类型应用小Demo"中,我们将探讨如何利用枚举来...

    字典枚举扩展工具demo

    在本示例中,"字典枚举扩展工具demo"很可能是为了展示如何利用编程语言(如Python)中的字典枚举功能进行高效的数据操作。这种工具通常包括一系列方法或函数,帮助开发者更便捷地遍历字典、获取键值对,以及执行其他...

    enum枚举类的一些代码demo

    下面我们将深入探讨`enum`枚举类的使用方法,并通过具体的代码示例来加深理解。 1. **枚举的定义** 枚举类的定义通常以关键字`enum`开头,后跟枚举名,然后是大括号`{}`内的一系列枚举常量。例如,我们可以定义一...

    java枚举实例代码

    在本实例代码中,我们将探讨枚举的基本用法和特性。 首先,枚举的定义方式如下: ```java public enum Color { RED, GREEN, BLUE } ``` 在这个例子中,`Color` 是一个枚举类型,`RED`, `GREEN`, `BLUE` 是该枚举...

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    这些代码可能包括创建枚举类,然后通过反射获取枚举值、实例名以及演示如何使用`getDeclaredConstructor()`和`newInstance()`方法来访问私有构造函数(虽然这不是常规用法)。 通过深入理解这些概念,你可以更好地...

    C# 枚举类型的实例说明

    通过以上实例,我们不仅了解了C#枚举类型的基本定义和使用方法,还掌握了如何进行数值操作、方法调用以及与字符之间的转换。枚举类型在C#编程中扮演着重要的角色,合理地运用枚举类型可以使得代码更加清晰、高效。

    mybatis入门实战之枚举类型

    本文将深入探讨在MyBatis中如何使用枚举类型,并通过实际的项目"mybatis入门实战之枚举类型"进行讲解。这个项目提供了一个简单的demo,非常适合初学者了解并实践MyBatis的TypeHandler机制。 首先,我们要明白枚举...

    java枚举的一个实例

    Java枚举是编程语言Java中的一个特色特性,它在类、接口和变量的定义中扮演着...在JavaDemo项目中,可能包含了各种使用枚举的示例,包括但不限于上述讨论的各种用法,学习和理解这些示例有助于深入理解和应用Java枚举。

    vc实例精通源码,windows基本控件的使用Demo

    02_CheckBoxDemo 演示复选框和单选按钮控件的使用方法。 03_ComboBoxDemo 演示组合框和列表框控件的使用方法。 04_ScrollBarDemo 演示滚动条控件的使用方法。 05_SpinDemo 演示数值调节按钮的使用方法。 06...

    1.springbood+mybatis项目demo2.mybatis自定义枚举类型的转换器以及各种使用场景

    本项目示例"1.springboot+mybatis项目demo2.mybatis自定义枚举类型的转换器以及各种使用场景"着重展示了如何在Spring Boot应用中集成MyBatis,并利用MyBatis处理枚举类型的数据。 首先,我们来了解Spring Boot。...

    枚举小结

    本篇文章将围绕枚举展开讨论,结合`Enum Demo`实例,深入理解枚举的应用和特性。 在Java中,枚举类是单例的,可以通过`.values()`方法获取枚举的所有实例。例如: ```java public enum Color { RED, GREEN, BLUE;...

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

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

    swift_0 基本语法示例demo

    这个“swift_0 基本语法示例demo”压缩包提供了Swift语言的基础语法示例,非常适合初学者了解和学习。 Swift的语法简洁且具有表达力,它结合了C和Objective-C的优点,同时摒弃了它们的一些复杂性和不安全的特性。...

    javaweb系统的枚举设计

    此外,枚举天然支持单例模式,并且可以拥有方法和字段,增加了灵活性。 在Java中,创建枚举类型的语法如下: ```java public enum Color { RED, GREEN, BLUE; } ``` 枚举不仅可以包含基本类型值,还可以包含复杂...

    Windows 下libusb 使用方法,可基于DEMO开发USB通信程序。.zip

    DEMO通常会包含一个简单的示例,如枚举设备、打开设备、发送/接收数据等基本操作。通过阅读DEMO,你可以了解如何调用libusb API实现USB通信。 6. **设备枚举和选择**: 通过`libusb_get_device_descriptor()`函数...

    内部类和枚举类.rar

    - `demo8`可能是一个展示如何在类中定义和使用内部类的示例,包括成员内部类和静态内部类的用法,以及如何通过外部类对象访问内部类对象。 - `task03`可能是关于枚举类的练习,涵盖了枚举常量的定义、枚举方法的添加...

    枚举完整讲解实例

    定义枚举类型的最简单方法是使用默认构造函数: ```java enum Grade { A, B, C, D, E; } class Student { private Grade grade; public Grade getGrade() { return grade; } public void setGrade(Grade grade...

    API_Demo.zip_DEMO_api demo

    通过这样的Demo,新手可以学习API调用的基本语法,了解如何处理返回的数据,以及如何将这些功能集成到自己的项目中。对于有经验的开发者来说,这可能是一个快速验证新API功能的起点。 10. **API文档**: 成功使用...

    libusb DEMO工程

    通过这个DEMO,开发者不仅可以学习libusb库的基本用法,还可以了解到如何在Windows环境下处理USB设备的细节。这将有助于创建自己的USB通信程序,支持自定义设备或者对现有设备进行更底层的控制。在深入研究之前,...

Global site tag (gtag.js) - Google Analytics