Enumeration的学习
枚举是jdk5.0之后的新特性。枚举的使用在编程中能起到很大的作用,本文从枚举的适用范围、枚举的特点、枚举的使用等三个方面学习枚举
一、枚举的使适用范围
“在有限的范围内选择值”:比如一个星期只有星期一到星期日,不可能出现星期八。
二、枚举的特点
1、枚举类是一种特殊形式的Java类。
2、枚举类中声明的每一个枚举值代表枚举类的一个实例对象。(在枚举的使用中会讲到)
3、与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。
4、枚举类也可以实现接口、或继承抽象类。
5、JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。
6、若枚举类只有一个枚举值,则可以当作单态设计模式使用。
三、枚举的使用
示例:查询学生的成绩,成绩范围对应成绩的等级
//适用范围:在有限的范围内选择值
public class EnumerationTest {
public static void main(String[] args) { //查询指定等级的成绩分数
EnumerationTest t=new EnumerationTest();
t.setGrade(Grade.E);
System.out.println(t.getGrade().getScore()+"\t"+t.getGrade().toLocalGrade()); //switch在enumeration中的应用
Grade grade=Grade.A;
switch (grade){
case A:
System.out.println("优");
break;
case B:
System.out.println("良");
break;
default:
System.out.println("不及格");
break;
}
//枚举的常用方法
for(Grade grade1:Grade.values()){//values()遍历枚举类的所有值 name()获取枚举的值 ordinal():获取枚举的序号
System.out.println(grade1.name()+"\t"+grade1.ordinal());
} } private String name;
private Grade grade; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Grade getGrade() {
return grade;
} public void setGrade(Grade grade) {
this.grade = grade;
}
}
//枚举类
enum Grade{//含有抽象方法的类一定是抽象类
A("100-90"){ //A表示被实例化的对象 private Grade(String score) 枚举类中声明的每一个枚举值代表枚举类的一个实例对象。 A相当于 Grade A=new Grade();
@Override
public String toLocalGrade() {//使用匿名内部类实现枚举类的抽象方法
return "优";
}
},
B("89-80"){//枚举类中声明的每一个枚举值代表枚举类的一个实例对象。
@Override
public String toLocalGrade() {
return "良";
}
},
C("79-70"){
@Override
public String toLocalGrade() {
return "好";
}
},
D("69-60"){
@Override
public String toLocalGrade() {
return "及格";
}
},
E("59-50"){
@Override
public String toLocalGrade() {
return "不及格";
}
},
F("49-40"){
@Override
public String toLocalGrade() {
return "最差";
}
}; private String score;
private Grade(String score){
this.score=score;
}
//该分数为只读的,不能对其进行修改
public String getScore() {
return score;
}
public abstract String toLocalGrade();
}
Enumeration的学习的更多相关文章
- 【Swift学习笔记00】——enumeration枚举类型遵循协议protocol
Apple官方文档:The Swift Programming LanguageProtocols and Extensions一节的小节练习,要求自行定义一个enumeration枚举类型,并且遵循 ...
- 5.7(java学习笔记)Vector、Enumeration
一.Vector Vector类实现一个可扩展的数组对象.与数组一样,它包含可以使用整数索引访问. 它的基本操作方法add(int index, E element),get(int index),i ...
- 吴裕雄--天生自然java开发常用类库学习笔记:foreach及Enumeration接口
import java.util.Vector; import java.util.Enumeration; public class EnumerationDemo01{ public static ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
- Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结
2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...
- java web学习总结(六) -------------------servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 关于JAVA学习计划和感想
学习计划第一阶段: JAVA语言基础知识.包括异常.IO流.多线程.集合类. 要求:异常------掌握try-catch-finally的使用 IO流------掌握字 ...
- 驱动开发学习笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇
驱动开发读书笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇下面这段摘自 linux源码里面的文档 : Documentatio ...
随机推荐
- windows200364位iis6 php环境搭建
最近接一个小活,就是帮着部署个php网站,服务器是window2003,iis6.之前在我自己得服务器上已经搭建过php环境,区别是我的服务器windows2012,而对方的是windows 2003 ...
- 【BZOJ1491】【NOI2007】社交网络(最短路,动态规划)
[BZOJ1491][NOI2007]社交网络(最短路,动态规划) 题面 BZOJ 洛谷 图片是假的,只能到OJ上看 Description 在社交网络(socialnetwork)的研究中,我们常常 ...
- 电子商务(电销)平台中财务模块(Finance)数据库设计明细
以下是自己在电子商务系统设计中的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 资金账户表 (finance_account)|-- 自动编号|-- 用户编号|-- 预付款 (ad ...
- 在github fork的项目中推送与抓取
github -- fork提交项目:自己的仓库和原仓库进行Git同步的操作. 1. 获取你fork的原仓库的更新过的最新代码:如果没有远程原始分支则需要增加. git remote add upst ...
- C++之面向对象编程20170912
/*************************************************************************************************** ...
- pdf 下载整理
pdf下载整理: using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...
- array_unique后,数组本身的值并不会变
<?php $arr = [ ' ]; print_r($arr); print_r(array_unique($arr)); print_r($arr); //array_unique后,数组 ...
- Nginx -- proxy_pass配置
一.proxy_pass 作用域: location 不影响浏览器地址栏的url 设置被代理server的协议和地址 协议可以为http或https 地址可以为域名或IP 二.配置规则 2.1 测试环 ...
- SpringBoot(三) :Spring boot 中 Redis 的使用
前言: 这一篇讲的是Spring Boot中Redis的运用,之前没有在项目中用过Redis,所以没有太大的感觉,以后可能需要回头再来仔细看看. 原文出处: 纯洁的微笑 SpringBoot对常用的数 ...
- Tensorboard教程:高维向量可视化
Tensorflow高维向量可视化 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 强烈推荐Tensorflow实战Google深度学习框架 实验平台: Tensorflow1.4. ...