一:枚举的概念

定义特定的数据,尤其像一些状态位。

二:定义枚举类

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学习总结三(枚举)的更多相关文章

  1. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB

    JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...

  2. JavaWeb学习总结(三)——Tomcat服务器学习和使用

    收藏 JavaWeb学习总结(三)——Tomcat服务器学习和使用 http://www.cnblogs.com/xdp-gacl/p/3744053.html

  3. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)

    一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

  4. javaweb学习总结(三十一)——国际化(i18n)

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  5. javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD

    一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...

  6. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)(转)

    转载自 http://www.cnblogs.com/xdp-gacl/p/3744053.html 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWe ...

  7. javaweb学习总结(三十八)——事务

    一.事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐,对应于如下两条sql语句  update from account set mone ...

  8. javaweb学习总结(三十二)——JDBC学习入门

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  9. javaweb学习总结(三十)——EL函数库

    一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页 ...

随机推荐

  1. 用java获取歌曲文件的专辑封面元信息

    几个个软件: 1, Jaudioatgger: 链接 2, mp3agic 链接 3, Java mp3 id3 tag library  (推荐用上面两个) 其它: android-midi-lib

  2. 修改Map中确定key对应的value问题

    今天在码代码的时候出现一个没有预料的问题: 先看下面的代码: public static void main(String[] args) { String[] files=new String[]{ ...

  3. HDU 5676 ztr loves lucky numbers (模拟)

    ztr loves lucky numbers 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/I Description ztr ...

  4. POJ 1860 Currency Exchange (SPFA松弛)

    题目链接:http://poj.org/problem?id=1860 题意是给你n种货币,下面m种交换的方式,拥有第s种货币V元.问你最后经过任意转换可不可能有升值.下面给你货币u和货币v,r1是u ...

  5. qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统

    qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果! 虽然已经买了2440开发板,但是在实际学习 ...

  6. 不能发现 class "com.uustudio.unote.android.BaseApplication"

    12-13 15:45:46.289: E/AndroidRuntime(3474): java.lang.RuntimeException: Unable to instantiate applic ...

  7. when not exists 用法

    USE [ChangHong_612]GO/****** Object: StoredProcedure [dbo].[st_MES_UpdateInspectResult] Script Date: ...

  8. c++未指定返回值

    int foo() { } foo返回的是随机数 函数的返回值在函数堆栈的参数后面,由一个指向寄存器的指针决定,函数返回时,调用者取指针取寄存器中的值作为返回值. 如果指定返回值,函数在返回前会将返回 ...

  9. CentOS 6.5部署HTTP WEB服务器和FTP服务器

    转载自:http://www.server110.com/linux/201403/8613.html [题记]本文使用CentOS 6.5 minimal快速搭建HTTP服务器和仅供授权用户登陆的F ...

  10. yii泛域名

    return CMap::mergeArray( require (dirname(__FILE__) . '/main.php'), array( 'components' => array( ...