1)枚举类的两种定义方法
1》通过构造器
public enum Grade{
A("A", "90-100"),B("B","80-89"),C("C", "70-79"),D("D", "80-89"),E("E", "90-100"); private String tip;
private String desc; private Grade(String tip, String desc){
this.tip = tip;
this.desc = desc;
} public String getTip() {
return tip;
} public String getDesc() {
return desc;
} }
2》通过匿名内部类(一般用于有抽象方法的枚举) eg:
public enum Season {//注意:含有抽象方法的枚举类不用加abstract
SPRING{
@Override
public void show(){
System.out.println("春天");
}
},SUMMER{
@Override
public void show() {
System.out.println("夏天");
}
},AUTOMN{
@Override
public void show() {
System.out.println("秋天");
}
},WINNTER{
@Override
public void show() {
System.out.println("冬天");
}
};
//抽象方法
public abstract void show();
}
3)switch语句和枚举类的联用
eg:
Season season = Season.SPRING;
String msg = null;
switch(season){
case SPRING:msg = "1"; break;//注意不是Season.SPRING
case SUMMER:msg = "2"; break;
case AUTOMN:msg = "3"; break;
case WINNTER:msg = "4"; break;
}
System.out.println(msg);
4)枚举类常用方法
1》String name():返回枚举值的名称
2》int ordinal():显示枚举值对应的索引,从0开始
3》type[] values():获得该枚举类对应的所有枚举值,返回一个数组
4》static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)://将字符串转换成带指定名称的指定枚举类型的枚举常量。
eg:
Season season = Season.SPRING;
System.out.println(season.name());//SPRING
System.out.println(season.ordinal());//0【下标】 Season[] seasons = season.values();//获得属性值数组
for(Season s : seasons){
System.out.println(s.name());
} //Season.valueOf(Season.class, "QQ");//可判断QQ是否属于枚举值之一,
//抛出IllegalArgumentException:异常 System.out.println("=="+Season.valueOf(Season.class, "SPRING").name());//正常:SPRING.
//Season.valueOf(Season.class, "spring");//也会抛出异常 5)理解:
1》枚举类中的每一个枚举值,相当于是实例变量
2》枚举类与普通类一致,可以继承或实现,如果有抽象方的话,可以利用每个枚举类以匿名内部类的方式去实现
3》枚举值可以用在switch语句的case后面,并且直接些枚举值,不需要加上枚举类。
4》若枚举类只有一个枚举值,则可类似于单例设计模式。 补充:注意枚举类和枚举集合的区别.Enum Enumeration

eration

枚举类:用enum关键字来定义一个枚举类的更多相关文章

  1. Java分享笔记:自定义枚举类 & 使用enum关键字定义枚举类

    在JDK1.5之前没有enum关键字,如果想使用枚举类,程序员需要根据Java语言的规则自行设计.从JDK1.5开始,Java语言添加了enum关键字,可以通过该关键字方便地定义枚举类.这种枚举类有自 ...

  2. ASP.NET 下拉列表绑定枚举类型值,不用再新建一个枚举表

    public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArg ...

  3. 收集C#常用类:自己写的一个DBHelper类

    随着学的东西越来越多,一点点的完善吧! using System; using System.Collections.Generic; using System.Linq; using System. ...

  4. Kotlin——中级篇(五):枚举类(Enum)、接口类(Interface)详解

    在上一章节中,详细的类(class)做了一个实例讲解,提到了类(class)的实例化.构造函数.声明.实现方式.和Java中类的区别等.但是对于Kotlin中的类的使用还远远不止那些.并且在上文中提到 ...

  5. C#中的枚举类型(enum type)

    ylbtech 原文 C#中的枚举类型(enum type) 概念 枚举类型(enum type)是具有一组命名常量的独特的值类型.在以下示例中: enum Color { Red, Green, B ...

  6. private关键字实现控制新建类数量

    private关键字作为一个重要的关键字,我们在开发中会经常用到,可是你有没有想过通过private关键字我们可以创建一个别人无法通过new来新建的类呢?下面我们就来看一下: package retu ...

  7. 一个Java文件至多包含一个公共类

    编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...

  8. 2014金山笔试_编写一个数组类 MyVector

    //编写一个数组类 MyVector,数组内容可以动态扩充,实现构造,析构,赋值操作符重载,插入,删除,获取元素个数,获取数组容量(不可以使用STL等的容器类,不能使用 //不连续的存储空间) #in ...

  9. 如何唯一确定一个 Java 类?

    今天偶然想起之前和朋友讨论过的一个问题:如何唯一确定一个 Java 类?我相信大多数朋友遇到这个问题的回答都是:类的全路径呗.但事实上,唯一确定一个 Java 类,单单靠类路径是不够的,还要多加上一个 ...

随机推荐

  1. SolrCloud 5.2.1 installation and configuration

    虽然不是很有技术含量的事情,主要依靠的是阅读能力,然而知识的东西还是记录一下,以备后继待查. 环境相关 1. Server:h1,h2,h3 2. OS RHEL 6.2 3. Zookeeper 3 ...

  2. 转载-常用API接口签名验证参考

    原文地址: http://www.cnblogs.com/hnsongbiao/p/5478645.html 写的很好,就做个笔记了.感谢作者! 项目中常用的API接口签名验证方法: 1. 给app分 ...

  3. jQuery扩展与noConflict的用法-小示例

    有时我们要用到自己定义的jquery,这时可以通过jQuery扩展来实现该功能 index.html <!DOCTYPE html> <html> <head> & ...

  4. Highcharts 基本曲线图

    基本曲线图实例 文件名:highcharts_line_basic.htm <html> <head> <meta charset="UTF-8" / ...

  5. Android-自定义PopupWindow

    PopupWindow在应用中应该是随处可见的,很常用到,比如在旧版本的微信当中就用到下拉的PopupWindow,那是自定义的.新版微信5.2的ActionBar,有人已经模仿了它,但微信具体是使用 ...

  6. SOA——面向服务的体系架构

    上一篇博文中提到了"紧耦合"的现象.怎样解决?SOA.採用面向服务的体系架构. 一.What? SOA=Service-oriented Architecture面向服务的体系结构 ...

  7. 常用语言api语法Cheat Sheet

    http://overapi.com/jquery/ OverAPI.com Python jQuery NodeJS PHP Java Ruby Javascript ActionScript CS ...

  8. 关于CCRect

    一直有一个误区,因为之前处理的公司引擎是屏幕坐标系 导致觉得CCRect的坐标起始值(x,y),习惯性的认为就是左上角的点. 但是,真正的x,y值,是跟x轴与y轴相对应的.

  9. Android 使用新浪微博SSO授权

    新浪微博SSO授权,很早就做好了,只是一直没有时间整理博客,今天加班,晚上闲暇之时便想到整理一下.由于整个七月份很忙,加班很多.前段时间把腾讯微博的SSO认证整理好了.想在七月份翻篇之前再写点东西.好 ...

  10. 第四章 Activity和Activity调用栈分析 系统信息与安全机制 性能优化

    1.Activity生命周期理解生命周期就是两张图:第一张图是回字型的生命周期图第二张图是金字塔型的生命周期图 注意点(1)从stopped状态重新回到前台状态的时候会先调用onRestart方法,然 ...