`
周凡杨
  • 浏览: 233252 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Enum的深入浅出

阅读更多
 

   还记得上一篇是如何运用Enum来定义一周的的吗?

 

public enum Weekday {
	monday,tuesday,wensday,thursday,friday,saturday,sunday
}

 

   显然,enum很像特殊的class,为了一探究竟,需要来看一下Weekday.java文件的字节码:

 



 

 

通过javap命令,查看字节码得知,实际上enum声明定义的Weekday就是一个类,该类继承(extends )自 java.lang.Enum类。

查看java api文档,其中对java.lang.Enum类的介绍非常简单明了,它就是所有 Java 语言枚举类型的公共基本类。

再来看看我们通常通过变量来实现Weekday的代码:

 

public static final String monday = "1";
public static final String tuesday = "2";
public static final String wensday = "3";
public static final String thursday = "4";
public static final String friday = "5";
public static final String saturday = "6";
public static final String sunday = "7";

 

其中字码中定义变量部分是不是与上面的代码很像,那我们来总结一下吧!

  1.    枚举类型声明定义的就是一个类,类是final类型,说明不可以被继承
  2. 枚举值(mondaytuesdaywensday…)都是类Weekday静态常量,可理解为类内部是对一组变量的封装。

 

 

     恩,暂停一下吧,我要先来解答一下上一篇中的问题,怎么通过enum来定义变量并赋值。

   

public enum Weekday {

 monday("1"),tuesday("2"),wensday("3"),thursday("4"),friday("5"),saturday("6"),sunday("7");
	
	// 成员变量
	private String value;

	// 构造方法
	private Weekday(String v){
		value = v;
	}
	
	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}
	
}

 

     哇有点小复杂,先消化一下吧!

 

 

   参考资料:

       http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.html

       http://www.ibm.com/developerworks/cn/java/j-lo-enum/

  • 大小: 33.8 KB
6
2
分享到:
评论

相关推荐

    TS大全深入浅出深入学习

    "TS大全深入浅出深入学习" 这个标题表明这是一个关于TypeScript(简称TS)的全面学习资源,旨在帮助读者深入理解并掌握这门编程语言。"深入浅出"强调了教程内容既具有深度,又注重易懂性,适合初学者和有一定经验的...

    深入浅出单例Singleton模式

    【深入浅出单例Singleton模式】 单例模式是一种在软件设计中常见的设计模式,它的核心目标是确保一个类只有一个实例,并提供一个全局访问点。在Java等面向对象编程语言中,单例模式常用于控制资源的共享,如全局...

    深入浅出PINTOS

    【深入浅出PINTOS】项目详解 PINTOS是一个操作系统学习项目,旨在帮助学生理解操作系统的基本原理,如进程管理、内存管理和设备驱动等。在这个项目中,我们将深入探讨PINTOS的核心概念,并逐步了解如何操作和调试它...

    深入浅出的mysql优化大全

    以下是一些深入浅出的MySQL优化策略: 1. 选择合适的字段属性: 在设计数据库表时,应尽可能减小字段宽度,以减少存储空间和查询时间。例如,邮政编码字段只需设定为CHAR(6)即可,无需使用VARCHAR或更大的类型。...

    Java基础知识精讲,深入浅出,好资料

    这份"Java基础知识精讲"的资料深入浅出地介绍了Java的核心概念,是初学者理想的入门指南。以下将详细介绍其中可能涵盖的知识点。 1. **Java简介**:讲解Java的发展历史,其跨平台的特性(Write Once, Run Anywhere...

    深入浅出谈java修饰符共6页.pdf.zip

    然而,提供的压缩包文件"深入浅出谈java修饰符共6页.pdf.zip"似乎包含的是一个PDF文档,若要获取更多具体信息,需要解压并查看文档内容。在"赚钱项目"这个子文件中,可能涉及的是如何利用Java编程技能进行项目开发以...

    深入浅出Java注解(注解概述+注解的本质+反射注解信息+元注解+属性的数据类型及特别的属性:value和数组)

    注解的属性可以是基本数据类型、String、Class、Enum、Annotation 等。我们可以使用 `@MyAnnotation(getValue = "annotation on class")` 这样的方式来给注解赋值。 特别的属性:value 和数组 注解的属性可以是...

    C++100天经典实战系(含大量案例源码及通俗讲解教程,effective_c++、STL、综合能力全面提升)

    友元函数与友元类、引用与指针那些事、深入浅出C++虚函数的vptr与vtable、宏那些事、范围解析运算符那些事、从初级到高级的enum那些事、纯虚函数和抽象类、volatile、virtual、using、union、this、struct_class、...

    swift菜鸟入门视频教程-08-枚举

    Swift是一种强大的、面向对象的编程...本视频教程将深入浅出地介绍如何创建枚举、使用关联值、Raw Values、以及枚举的方法和属性。通过学习,初学者能够更好地掌握Swift语言的核心概念,并能在实际项目中有效应用枚举。

    Java程序设计(雍俊海)ch05

    《Java程序设计教程》是雍俊海教授在清华大学软件学院所著的一本书,该书深入浅出地介绍了Java编程的基础知识。本章重点讨论了Java中的泛型、枚举以及for语句的简化写法,这些都是Java编程中非常重要的概念。 泛型...

    C#交通工具案例3 c#经典案例.ppt

    总的来说,这个案例深入浅出地介绍了C#中的方法重载、结构体和枚举类型,这些都是C#编程中基础但至关重要的概念。通过实践这些知识点,开发者可以更好地组织代码,提高代码的可维护性和可扩展性。

    Effective C++中文版

    书中提供了深入浅出的讲解和实践技巧,帮助读者掌握C++编程中的高级和关键概念。通过对代码片段的分析,可以提炼出C++语言编程中的多个知识点,包括预处理指令、常量定义、类的使用、枚举类型、函数重载、模板、内存...

    Effective C++ 中文版

    这本书通过具体实践案例和详尽的解释,将复杂的C++语言细节和高级特性以深入浅出的方式介绍给读者,帮助读者在实际编程中避免常见的错误,编写出高效和规范的代码。书中内容不仅仅局限于语言特性,还包括了面向对象...

    精品 C++课程 大学教程

    《C++大学教程》是一门深入浅出的编程课程,主要针对C++语言进行系统性的讲解,旨在帮助学习者掌握这一强大的编程工具。这门课程的课件采用PPT格式,便于教学和自我学习,强调易用性和实用性。 在课程中,首先接触...

    C#程序开发范例宝典(第2版)(第16—20章.rar)

    《C#程序开发范例宝典(第2版)》是一部深入浅出的C#编程教程,涵盖了丰富的实例,旨在帮助读者掌握C#语言的核心概念和技术。本资源提供了该书第16至20章的源代码,共计572个实例,尽管缺少了第2、5、10、11章的代码,...

    C语言精讲之深度解剖

    C语言精讲之深度解剖是一本针对初学者的教材,旨在深入浅出地介绍C语言的各个方面,帮助初学者建立坚实的编程基础。 在这本书中,首先介绍了C语言的基本概念,如关键字、数据类型和变量命名规则。关键字是C语言中的...

    谭浩强C语言word版

    《谭浩强C语言》这本书深入浅出地介绍了C语言的基础概念和技术,包括数据类型、运算符、控制结构、函数、数组、指针、结构体、文件等核心内容。 1. 数据类型:C语言提供了基本的数据类型,如整型(int)、字符型...

    C Primer Plus 5th Edition 例题源码

    这本书深入浅出地介绍了C语言的基础知识和高级特性,为初学者提供了全面的学习资源。配合书中的例题源码,读者可以更好地理解和实践编程概念。 源码文件列表可能包括了书中各个章节的示例程序,涵盖了变量、数据...

Global site tag (gtag.js) - Google Analytics