javaweb学习总结三(枚举)
一:枚举的概念
定义特定的数据,尤其像一些状态位。

二:定义枚举类
1:定义枚举,其中Grade枚举可以看做类,A、B、C、D、E可以看做对象,因为它定义了有参数的构造方法,所以
对象后面必须带参数。
// 定义枚举Grade
enum Grade {
A("90-100"), B("80-90"), C("70-80"), D("60-70"), E("小于60");
private String value; //成员变量 private Grade(String value) { //构造方法
this.value = value;
} public String getValue() {
return this.value;
}
}
2:调用枚举
@Test
public void testEnum() {
print(Grade.A);
} public void print(Grade g) { //传参为枚举
System.out.println(g.getValue());
}
三:带抽象方法的枚举类
1:定义枚举
// 定义枚举Grade
enum Grade {
A("90-100") {
@Override
public String localeValue() {
return "优秀";
}
},
B("80-90") {
@Override
public String localeValue() {
return "良好";
}
},
C("70-80") {
@Override
public String localeValue() {
return "中等";
}
},
D("60-70") {
@Override
public String localeValue() {
return "及格";
}
},
E("小于60") {
@Override
public String localeValue() {
return "不及格";
}
};
private String value; // 成员变量 private Grade(String value) { // 构造方法
this.value = value;
} public String getValue() {
return this.value;
} public abstract String localeValue(); // 定义抽象方法
}
2:调用
@Test
public void testEnum() {
print(Grade.A);
} public void print(Grade g) { // 传参为枚举
System.out.println(g.getValue());
System.out.println(g.localeValue());
}
四:枚举中常用的方法
1:枚举类的构造函数必须是私有的,因为枚举是向程序传入特定的数据,如果是构造是public,那么
程序就会new很多对象,违反枚举的意义。
2:枚举可以作为单例设计模式,如下:
enum Year {
A; // 只有一个对象,构造函数私有,不能实例化
}
public class Year {
private final Year y = new Year(); // 定义一个对象
private Year() { // 私有化构造方法
}
public static Year getInstance() {
return y;
}
}

3:常用api
@Test
public void testEnumApi() {
System.out.println(Grade.A.name()); // 输出名称
System.out.println(Grade.A.ordinal());// 输出序号
String str = "A"; // 将字符串转换为枚举
Grade g = Grade.A.valueOf(str);
System.out.println(g);
// 获取所有的枚举对象
Grade[] grades = Grade.values();
for (Grade grade : grades) {
System.out.println(grade);
} }
将字符串转换为枚举使用场景:
客户端表单提交时,提交的数据(例如:性别)是字符串,在服务器端获取数据时,可以转换为枚举,如果能够
转换,则验证通过;如果不能,则抛出异常,告知提交失败!
javaweb学习总结三(枚举)的更多相关文章
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB
JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...
- JavaWeb学习总结(三)——Tomcat服务器学习和使用
收藏 JavaWeb学习总结(三)——Tomcat服务器学习和使用 http://www.cnblogs.com/xdp-gacl/p/3744053.html
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
- javaweb学习总结(三十一)——国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
- javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD
一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)(转)
转载自 http://www.cnblogs.com/xdp-gacl/p/3744053.html 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWe ...
- javaweb学习总结(三十八)——事务
一.事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐,对应于如下两条sql语句 update from account set mone ...
- javaweb学习总结(三十二)——JDBC学习入门
一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...
- javaweb学习总结(三十)——EL函数库
一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页 ...
随机推荐
- H264编码参数的一些小细节
一次写播放器,基于ijkplayer.在播放一些网络视频的时候,发现无论怎么转码,视频比例始终不对.即便获取了分辨率,但是播放的时候,view不是分辨率比例的那个长宽比.使用ffmpeg查看了一下属性 ...
- Create a commit using pygit2
Create a commit using pygit2 Create a commit using pygit2 2015-04-06 10:41 user1479699 imported from ...
- oracle中DECODE与CASE的用法区别
对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断.Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能.而CASE是9i以后提供的语法,这个 ...
- UVA 796 - Critical Links (求桥)
Critical Links In a computer network a link L, which interconnects two servers, is considered criti ...
- Error: [$injector:unpr] angular.js
首先去看控制器是否存在错误 (function () { angular.module('myApp.demo', []) .controller('demoCtrl', ['$scope', '$r ...
- CTF
今天发现了一个神奇的领域CTF……感觉打开了新世界的大门 http://ctf.idf.cn/里面各种有趣的题目0.0
- 【灵感】wifi通过wifi发送优惠信息
1.[灵感]wifi通过wifi发送优惠信息 http://content.businessvalue.com.cn/post/15362.html 2.手机彩票大爆发 http://content. ...
- 【不积跬步,无以致千里】vim复制
用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽:上次论坛上有人问到了怎么在vim中使 ...
- Openfire服务器MySQL优化
Openfire服务器MySQL优化: [root@iZ28g4ctd7tZ ~]# mysql -u root -p XXXXX mysql> show processlist; +----- ...
- sharepoint 2013 未能加载类型"Microsoft.AnalysisServices.SharePoint.Integration.ReportGalleryView"
最近在做PowerPivot for sharepoint server 2013的时候,创建PowerPivot库,之后打开,出现了一个问题: 未能加载类型"Microsoft.Analy ...