枚举类:用enum关键字来定义一个枚举类
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关键字来定义一个枚举类的更多相关文章
- Java分享笔记:自定义枚举类 & 使用enum关键字定义枚举类
在JDK1.5之前没有enum关键字,如果想使用枚举类,程序员需要根据Java语言的规则自行设计.从JDK1.5开始,Java语言添加了enum关键字,可以通过该关键字方便地定义枚举类.这种枚举类有自 ...
- ASP.NET 下拉列表绑定枚举类型值,不用再新建一个枚举表
public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArg ...
- 收集C#常用类:自己写的一个DBHelper类
随着学的东西越来越多,一点点的完善吧! using System; using System.Collections.Generic; using System.Linq; using System. ...
- Kotlin——中级篇(五):枚举类(Enum)、接口类(Interface)详解
在上一章节中,详细的类(class)做了一个实例讲解,提到了类(class)的实例化.构造函数.声明.实现方式.和Java中类的区别等.但是对于Kotlin中的类的使用还远远不止那些.并且在上文中提到 ...
- C#中的枚举类型(enum type)
ylbtech 原文 C#中的枚举类型(enum type) 概念 枚举类型(enum type)是具有一组命名常量的独特的值类型.在以下示例中: enum Color { Red, Green, B ...
- private关键字实现控制新建类数量
private关键字作为一个重要的关键字,我们在开发中会经常用到,可是你有没有想过通过private关键字我们可以创建一个别人无法通过new来新建的类呢?下面我们就来看一下: package retu ...
- 一个Java文件至多包含一个公共类
编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...
- 2014金山笔试_编写一个数组类 MyVector
//编写一个数组类 MyVector,数组内容可以动态扩充,实现构造,析构,赋值操作符重载,插入,删除,获取元素个数,获取数组容量(不可以使用STL等的容器类,不能使用 //不连续的存储空间) #in ...
- 如何唯一确定一个 Java 类?
今天偶然想起之前和朋友讨论过的一个问题:如何唯一确定一个 Java 类?我相信大多数朋友遇到这个问题的回答都是:类的全路径呗.但事实上,唯一确定一个 Java 类,单单靠类路径是不够的,还要多加上一个 ...
随机推荐
- android merge 标签的使用
<merge xmlns:android="http://schemas.android.com/apk/res/android"> <ToggleButton ...
- android仿京东、淘宝商品详情页上拉查看详情
话不多说,直接上干货,基本就是一个scrollview中嵌套两个scrollview或者webview;关键点事处理好子scrollview和父scrollview的触摸.滑动事件已达到想要的效果.大 ...
- Android ListView嵌套Button,Button事件覆盖item事件解决办法
方法就是修改item布局的xml文件: 在根布局里加上: android:descendantFocusability="blocksDescendants" 然后在按钮布局里加上 ...
- BLOG PLUGINS
文章分享按钮 (1)加网(JiaThis) (2)百度分享 文章关联推荐 每篇博文下面可以显示你博客中与该篇博文有些关联的几篇文章,也就是智能推荐,一方面可以增加你博文的曝光率和点击率,一方面也可以给 ...
- Highcharts 基本曲线图
基本曲线图实例 文件名:highcharts_line_basic.htm <html> <head> <meta charset="UTF-8" / ...
- 推荐:室内定位API - indoor Location API
indoor.rs 公司近日开放了API,包括免费free的,收费fee的版本. 详情见这里,价格不是很贵哦 Open API支持Android/iOS等移动平台 提供工具,帮助进行地图和WiFi信号 ...
- python数据库做成邮箱的注册系统!
#! /usr/bin/env python2.7 # -*- coding:utf-8 -*- #File:w7.py #Date:2013-7-18 #Author:wangyu import r ...
- Android实现获取本机中所有图片
本示例演示如何在Android中使用加载器(Loader)来实现获取本机中的所有图片,并进行查看图片的效果. 在这个示例中,我使用android-support-v4.jar中的加载器(Loader) ...
- [转]iOS设备唯一标识探讨
转自:http://www.jianshu.com/p/b83b0240bd0e iOS设备唯一标识探讨 为了统计和检测应用的使用数据,几乎每家公司都有获取唯一标识的业务需求,在iOS5以前获取唯一标 ...
- Tooltip(提示框)组件
一.加载方式 //class加载方式 <a href="http://www.ycku.com" title="这是一个提示信息!" class=&quo ...