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页 ...
随机推荐
- Spring properties dependency checking
In Spring,you can use dependency checking feature to make sure the required properties have been set ...
- 系统级性能分析工具 — Perf
从2.6.31内核开始,linux内核自带了一个性能分析工具perf,能够进行函数级与指令级的热点查找. perf Performance analysis tools for Linux. Perf ...
- String(byte[] bytes, String charsetName)
String str = new String("时之沙"); byte bytes[] = str.getBytes("GBK"); byte byte2[] ...
- Castle IOC容器实践之FactorySupport Facility
PDF版本下载:http://file.ddvip.com/2008_10/1223538519_ddvip_4853.rar示例代码下载:http://file.ddvip.com/2008_10/ ...
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
当Adobe.Microsoft.Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来! 最初来自:sinoprise.com/read.php?tid-662-page-e-fpa ...
- ADO.NET 快速入门(十三):使用 OLE DB 检索数据
OleDbDataReader 类提供了一种从数据源读取数据记录只进流的方法.如果想使用 SQL Server 7.0 或者更高版本,请参考文章:使用 SQL Server 检索数据. OleDb ...
- 教你50招提升ASP.NET性能(二十):7条便利的ViewState技巧
(32)Seven handy ViewState tips 招数32: 7条便利的ViewState技巧 Every time I have to deal with a classic ASP.N ...
- Hadoop之父Doug Cutting
生活中,可能所有人都间接用过他的作品,他是Lucene.Nutch .Hadoop等项目的发起人.是他,把高深莫测的搜索技术形成产品,贡献给普罗大众:还是他,打造了目前在云计算和大数据领域里如日中天的 ...
- c3p0详细配置
c3p0详细配置 官方文档 : http://www.mchange.com/projects/c3p0/index.html <c3p0-config> <default-conf ...
- NAT的全然分析及其UDP穿透的全然解决方式
NAT的全然分析及其UDP穿透的全然解决方式 一:基本术语 防火墙 防火墙限制了私网与公网的通信,它主要是将(防火墙)觉得未经授权的的包丢弃,防火墙仅仅是检验包的数据,并不改动数据包中的IP地址和 ...