`
一个人旅行
  • 浏览: 91866 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java枚举类型-学习初

阅读更多
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:
 public enum Color{
    RED,BLUE,BLACK,YELLOW,GREEN
 }

显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类,而且是类库中Enum类的子类(java.lang.Enum<E>)。
1、Color枚举类是特殊的class,其枚举值(RED,BLUE...)是Color的类对象(类实例):Color c=Color.RED;而且这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。
2、即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。但是,枚举类的构造器有很大的不同:
(1) 构造器只是在构造枚举值的时候被调用。
(2) 构造器只能私有private,绝对不允许有public构造器。这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 但枚举类的方法和数据域可以允许外部访问。

下面是我自己写的例子:
public class Test{
	public static void main(String[] args) throws Exception
	{
		Test.outputWeekDay(WeekDay.Monday);
	}
	
	public static void outputWeekDay(WeekDay w)
	{
		System.out.println(w);
	}
	
}
enum WeekDay
{
	Monday(1),Tuesday(2),Wednesday(3);

	private int weekValue;
	private WeekDay(int weekValue)
	{
		this.weekValue = weekValue;
	}
	@Override
	public String toString()
	{
		// TODO Auto-generated method stub
		return String.valueOf(this.weekValue);
	}
}
分享到:
评论

相关推荐

    java编程基础-01

    ### Java编程基础知识点详解 #### 一、Java技术概述 ...通过以上知识点的详细介绍,我们不仅了解了Java语言的基本概念和发展历程,还掌握了Java语言的关键特性和开发流程,为深入学习Java编程奠定了坚实的基础。

    Java编程经典-2010新版ppt教程

    5. **类与对象的高级特性**:包括内部类、匿名类、反射机制、动态代理、枚举类型以及注解。 6. **输入/输出流**:讲解Java I/O系统,包括字节流、字符流、对象序列化,以及文件操作和缓冲流的使用。 7. **多线程...

    Curso-Java-Alura-Parte2-Orientacao-a-Objetos:Curso-Java-Alura-Parte2-Orientacao-Objetos

    - 枚举提供了类型安全,并且可以方便地与其他类型交互。 8. 异常处理: - Java中的异常是程序运行时发生的错误,通过try-catch-finally语句块进行处理。 - 异常类层次结构使得可以捕获特定类型的异常并进行相应...

    良葛格 java 学习笔记

    10. **枚举与注解**:学习 Java 中的枚举类型,以及注解(Annotation)的使用,如何自定义注解并进行元编程。 11. **Java 核心类库**:熟悉 Java 核心类库,如 Collections、Math、Date 和 Calendar 等,提高日常...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《java jdk 7学习笔记》适合java的初中级读者,以及广大java应用开发人员。 作译者 林信良(网名:良葛格) 学历:台湾大学电机工程学系 经历:台湾升阳教育训练技术顾问、专业讲师,oracle授权训练中心讲师 ...

    Java-2实用教程(第5版)习题解答.doc

    - `enum`: 定义枚举类型。 - `extends`: 表示继承关系。 - `abstract`: 定义抽象类或抽象方法。 **3. Java 数据类型** - **基本数据类型**: - `boolean`: 布尔型。 - `char`: 字符型。 - `byte`: 8位整型。 ...

    Java Programming Language

    - **枚举**:Java枚举类型提供了一种声明一组固定常量的方法。 - **注解**:注解是一种元数据,用于向代码中添加额外的信息,这些信息可以被编译器或运行时环境利用。 - **反射**:Java反射API允许在运行时获取类...

    Core JAVA volume I(第九版)

    11. **枚举与注解**:掌握Java枚举类型的应用,以及注解(Annotation)的使用和自定义。 12. **反射机制**:学习如何在运行时动态获取类的信息,创建对象,以及调用方法。 13. **泛型**:理解泛型的概念,如何在类...

    C#和JAVA的比较

    C#的switch语句相比Java有更强的表达能力,它可以处理枚举类型和字符串,而Java仅限于整数类型和枚举类型(自JDK 7起)。 除此之外,C#还有其他特性,如自动属性(Auto-Implemented Properties)、匿名方法与...

    java语言程序设计(第八版)复习题答案

    15. **枚举与注解**:枚举类型提供了更安全的常量表示,注解则为代码添加元信息。复习题可能涉及它们的定义和应用。 以上就是Java语言程序设计第八版复习题可能覆盖的知识点,通过理解和掌握这些内容,开发者可以...

    java全攻略

    9. **枚举与注解**:了解枚举类型的应用场景,以及注解在元编程中的作用。 10. **JNI(Java Native Interface)**:学习如何使用JNI与C/C++代码交互,实现Java与其他语言的混合编程。 三、Java EE核心篇 11. **...

    初中级JAVA测试题(2).zip

    11. **枚举与注解**:掌握枚举类型和注解的使用,了解它们在实际开发中的应用。 12. **集合框架高级**:深入理解List、Set、Map接口及其实现类的特性,如TreeMap、LinkedHashMap等。 13. **IO/NIO/BIO**:对比理解...

    java_jdk6.0api参考手册

    在集合框架方面,JDK6.0对Set、List、Map等接口以及其实现类进行了进一步完善,例如,EnumSet和EnumMap的加入,使得枚举类型的使用更加便捷高效。此外,泛型的引入是JDK6.0的一大亮点,它提高了代码的类型安全性和...

    java从入门到精通视频笔记

    流程控制是编程中的重要部分,Java提供了多种控制结构,如switch-case语句,其条件表达式和case后的值应保持数据类型一致,通常适用于byte、short、int、char和枚举类型。另外,还有for、while和do-while循环,分别...

    java终极面试资料大全2013

    其次,进阶篇:Java的反射机制、枚举类型、注解、JNI(Java Native Interface)等是面试中常见的深度问题。反射机制允许程序在运行时动态获取类的信息并调用其方法,枚举提供了一种安全的常量定义方式,注解则为代码...

    Java葵花宝典2017版

    《Java葵花宝典2017版》是针对Java面试者的一份全面指南,尤其适合初入职场、在校大学生以及准备转行到Java领域的学习者。这份宝典涵盖了Java的基础知识、进阶技巧和常见面试题,旨在帮助读者巩固Java编程技能,提升...

    java_shujujiegou_suanfa.rar_Java数据结构

    本资源“java_shujujiegou_suanfa.rar_Java数据结构”旨在为初中级Java程序员提供一个易懂的学习平台,帮助他们提升编程技能。 在数据结构方面,主要涉及以下知识点: 1. 数组:数组是最基本的数据结构,它存储...

    Java开发技术大全

    总的来说,《Java开发技术大全》是一本全面而实用的Java学习资料,无论你是初入编程殿堂的新手,还是希望巩固提升的开发者,都能从中受益。通过阅读本书并结合实践,你将具备扎实的Java基础,为在IT行业中发展奠定...

    JAVA程序设计100例(PDG)

    12. **枚举和注解**:枚举类型的应用,自定义注解及其处理器。 13. **JNI(Java Native Interface)**:Java与C/C++的交互,实现本地方法。 14. **JDBC**:连接数据库,执行SQL语句,了解预编译语句和结果集的处理。...

Global site tag (gtag.js) - Google Analytics