`
renlei413326889
  • 浏览: 75616 次
  • 性别: Icon_minigender_1
  • 来自: 岳阳
社区版块
存档分类
最新评论

Java枚举学习总结

    博客分类:
  • J2EE
阅读更多
基于网络文章的补充
地址http://www.cnblogs.com/fskjb/archive/2009/08/03/1537917.html

public class TestEnum {
	/* 
	 * 枚举:可以理解为有限元素的集合
	 * 最普通的枚举,枚举相当于一个类,不可继承,定义的元素相当于实例化具体的实例
	 * 默认有一个private的构造器,外部不能创建实例
	 * red 相当于普通类中 new 一个具体的实例
	 * */
	public enum ColorSelect {
		RED, GREEN, YELLOW, BLUE;
	}
	
	/* 枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样. */
	public enum Season {
		// 枚举列表必须写在最前面,否则编译出错
		winter, spring, summer, fall;

		private final static String location = "Phoenix";

		public static Season getBest() {
			if (location.equals("Phoenix"))
				return winter;
			else
				return summer;
		}
	}

	/* 还可以有构造方法 */
	public enum Temp {
		/*
		 * 通过括号赋值,而且必须有带参构造器和一属性跟方法,否则编译出错 赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值
		 * 如果不赋值则不能写构造器,赋值编译也出错
		 */
		absoluteZero(-459), freezing(32), boiling(212), paperBurns(451);

		private final int value;

		public int getValue() {
			return value;
		}

		// 构造器默认也只能是private, 从而保证构造函数只能在内部使用
		Temp(int value) {
			this.value = value;
		}
	}

	public static void main(String[] args) {
		/*
		 * 枚举类型是一种类型,用于定义变量,以限制变量的赋值 赋值时通过"枚举名.值"来取得相关枚举中的值
		 */
		ColorSelect m = ColorSelect.BLUE;
		switch (m) {
		/*
		 * 注意:枚举重写了ToString(),说以枚举变量的值是不带前缀的 所以为blue而非ColorSelect.blue
		 */
		case RED:
			System.out.println("color is red");
			break;
		case GREEN:
			System.out.println("color is green");
			break;
		case YELLOW:
			System.out.println("color is yellow");
			break;
		case BLUE:
			System.out.println("color is blue");
			break;
		}
		System.out.println("遍历ColorSelect中的值");
		/* 通过values()获得枚举值的数组 */
		for (ColorSelect c : ColorSelect.values()) {
			System.out.println(c);
		}
		
		System.out.println("枚举ColorSelect中的值有:" + ColorSelect.values().length
				+ "个");
		
		/* ordinal()返回枚举值在枚举中的索引位置,从0开始 */
		System.out.println(ColorSelect.RED.ordinal());// 0
		System.out.println(ColorSelect.GREEN.ordinal());// 1
		System.out.println(ColorSelect.YELLOW.ordinal());// 2
		System.out.println(ColorSelect.BLUE.ordinal());// 3

		/* 枚举默认实现了java.lang.Comparable接口 */
		System.out.println(ColorSelect.RED.compareTo(ColorSelect.GREEN));

		System.out.println(Season.getBest());

		for (Temp t : Temp.values()) {
			/* 通过getValue()取得相关枚举的值 */
			System.out.println(t + "的值是" + t.getValue());
		}
	}
}

=================================================================================================
/**
 * Java普通类实现枚举
 * 该实现的枚举不能取代枚举,只是枚举原理的体现实例
 * @author Administrator
 *
 */
public final class ColorSelect {
	/*相当于前面枚举中定的RED*/
	public static final ColorSelect RED = new ColorSelect();
	public static final ColorSelect GREEN = new ColorSelect();
	public static final ColorSelect YELLOW = new ColorSelect();
	public static final ColorSelect BLUE = new ColorSelect();

	private ColorSelect(){
	}
}
分享到:
评论

相关推荐

    java枚举实例代码

    总结来说,Java枚举提供了一种安全、可读的方式来处理一组预定义的常量。通过枚举,我们可以避免硬编码常量,减少错误,提高代码的可维护性。在实际开发中,枚举常用于定义状态、角色、类型等固定集合的场景。通过...

    简单总结java枚举类型

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

    java 枚举(enum) 详解(学习资料)

    总结来说,Java 枚举提供了一种强类型、安全且易于使用的机制,用于表示一组固定数量的值。它简化了代码,提高了程序的可读性和可维护性,同时也避免了传统的常量类或单例模式的一些潜在问题。通过深入理解和灵活...

    java学习路线总结.doc

    - **枚举类型**:学习枚举的定义和使用,结合switch-case语句的应用。 - **字符串处理**:掌握String、StringBuffer和StringBuilder的使用,理解它们的区别。 - **包装类**:学习基本类型的包装类,如Integer、...

    javaAPI学习总结

    Java API 学习总结 Java 是一种广泛使用的面向对象的编程语言,它的API(Application Programming Interface)提供了大量的类和接口,使得开发者能够高效地构建各种应用程序。本文将重点关注Java的基础知识,特别是...

    JAVA枚举与设计模式PPT教案学习.pptx

    Java中的枚举是一种强大的工具,它允许...总结来说,这个PPT教案深入浅出地介绍了Java枚举的特性以及如何利用枚举实现设计模式,尤其是单例模式,同时也展示了枚举在增强类型安全性、简化代码以及在模式中的应用价值。

    Java 基础核心总结_.zip

    这份"Java 基础核心总结_.zip"文件显然包含了学习Java编程所必需的重要知识点,旨在帮助初学者或开发者巩固基础。让我们逐一深入探讨这些主题: 1. **Java概述**:Java是一种跨平台、面向对象的编程语言,由Sun ...

    java-se 学习总结项目 Java学习资料

    这个"java_se 学习总结项目"包含了丰富的Java学习资料,旨在帮助开发者深入理解Java编程语言,提升技能。以下是对这个项目中可能包含的知识点的详细说明: 1. **Java基础**: - **语法特性**:包括变量、数据类型...

    java基础学习总结1

    java基础学习总结文本1,格式解释说明: switch:说明这是switch语句。 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序...

    java基础总结资料

    "java基础总结资料"涵盖了Java语言的核心概念,是学习和复习Java基础知识的重要资源。以下是一些主要的知识点: 1. **Java语法基础**:包括变量声明、数据类型(基本类型和引用类型)、运算符、流程控制(如if语句...

    Java中的Enum枚举用法.doc

    #### 二、Java枚举的基本概念 1. **什么是Java枚举?** - 枚举(`enum`)是Java中的一种特殊类,它只能包含固定数量的实例。 - 枚举中的每个元素都是该类型的实例,它们是类的成员,并且默认是静态和final的。 - ...

    Java学习路线总结,搬砖工逆袭Java架构师(全网最强)(csdn)————程序.pdf

    这篇PDF文档,"Java学习路线总结,搬砖工逆袭Java架构师(全网最强)(csdn)",提供了全面的学习路径,旨在帮助Java初学者到进阶者逐步提升技能。 首先,JavaSE(Java标准版)是所有Java学习的基础,它涵盖了Java...

    Java学习总结(2023/03/19)

    本文将基于“Java学习总结(2023/03/19)”的主题,深入探讨Java的核心概念、设计模式以及最佳实践,结合《Effective Java》的学习心得,为初学者和进阶者提供一份详尽的指南。 首先,Java语言的基础知识包括语法、...

    Java最全知识总结思维导图

    本资源"Java最全知识总结思维导图"提供了全面的Java学习路径和关键知识点的概览,旨在帮助初学者和有经验的开发者系统地理解和掌握Java的核心概念。 1. **数据库**: Java在数据库交互方面主要依靠JDBC(Java ...

    深入学习java枚举的应用

    总结,Java枚举提供了比静态常量更安全、更易于管理的方式来表示固定的、有限的数据集。枚举不仅提高了代码的可读性和安全性,还为开发者提供了许多便利的功能。在实际编程中,合理利用枚举可以显著提升代码质量。

    网络程序设计java第章泛型和枚举PPT学习教案.pptx

    总结来说,Java的泛型和枚举都是为了提升代码的灵活性和安全性。泛型提供了一种方式来编写可复用的类型安全的代码,而枚举则提供了一种创建常量集合和实现枚举类型的策略。熟练掌握这两个特性,将有助于编写出更健壮...

    Java中枚举类型的使用.docx

    ### Java中枚举类型的使用详解 #### 一、引言 在软件开发过程中,经常会遇到需要定义一组固定的常量的情况,比如系统中的状态值、选项等。这些常量的定义方式直接影响到代码的可读性、可维护性和扩展性。在Java...

    Java基础尚硅谷宋红康学习笔记

    3. **枚举**:枚举是Java中的一种特殊类,用于定义一组固定的常量,提高了代码的可读性和安全性。 4. **注解(Annotation)**:注解提供了一种元数据,用于向编译器或JVM提供关于代码的附加信息,例如用于代码生成...

Global site tag (gtag.js) - Google Analytics