枚举
来源:互联网 发布:深圳富士康java 编辑:程序博客网 时间:2024/06/06 02:52
我是菜鸟下面自己写的东西只供自己理解,Mark低自己噶学习experience。
枚举就是Java 中里面的一个特殊 的类,通常在练习的时候我比较喜欢用JUnit来运行代码,不用main()入口
今天主要就学了枚举, 自己听完一个短短30分钟后的视频 自己写了一个输出星期一至星期天的代码,发现要通过 自己思考写出来的东西才会去理解 的,如果只是简单的把视频里面的代码敲完就算,自己不用例子来检验,这样成长得好慢。下面的代码是教学里面的,没有实际业务意义。只是让你了解了解一下枚举是什么东西。
枚举里面比较注意的就是枚举的属性是私有的是public static final的,构造器是私有的(为了不让外界随便产生新的枚举对象),然后方法用的是abstract。
package itcast;
import org.junit.Test;
public class enumeration2 {
@Test
public void test(){
print(Grade.A);
}
public void print(Grade g){
String value = g.localeValue();
System.out.println(value);
}
@Test
//测试枚举的常用 方法
public void test2(){
System.out.println(Grade.C.name());
System.out.println(Grade.C.ordinal());
String str = "B";
// Grade g = Grade.valueOf(Grade.class, str);
Grade g = Grade.valueOf(str);
System.out.println(g);
}
/*
class Grade{
private Grade(){}
public static final Grade A = new Grade();
public static final Grade B = new Grade();
public static final Grade C = new Grade();
public static final Grade D = new Grade();
public static final Grade E = new Grade();
}*/
//带抽象方法的枚举
enum Grade{//class A("100-90"),B("89-80"),C("79-70"),D("69-60")不及格,
A("100-90"){
public String localeValue(){
return "优";
}
}
,B("89-80"){
public String localeValue(){
return "良";
}
}
,C("79-70"){
public String localeValue(){
return "中";
}
}
,D("69-60"){
public String localeValue(){
return "差";
}
}
,E("60-0"){
public String localeValue(){
return "不及格";
}
};//Object
private String value;//封装每个对象 对应的分数
private Grade(String value){
this.value = value;
}
public String getValue(){
return this.value;
}
public abstract String localeValue();
}
}
让console输出周一到周日,写枚举的时候步骤
1:枚举类
2:确认周一至周日的也就是标识符,Java中可以理解为Object
3:私有属性
4:私有构造器
5:公有方法,给外界获取标识符里面的内容
以下是代码:
package itcast;
import org.junit.Test;
public class testWeekDay {
@Test
public void testDay(){
for(WeekDay day : WeekDay.values()){
System.out.println(day.getValue());
}
}
enum WeekDay{
MON("星期一"),TUE("星期二"),WED("星期三"),
THU("星期四"),FRI("星期五"),SAT("星期六"),
SUN("星期天");
private String value;
private WeekDay(String value){
this.value = value;
}
public String getValue(){
return value;
}
}
}
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 枚举
- 什么导致了Context泄露:Handler&内部类
- Service通信
- 安卓开发学习之004 LinearLayout之分隔线 divider详解
- visual studio导出项目模板
- NSCache缓存类的详解
- 枚举
- HttpClient实现网络访问详解
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- jquery插件的扩展
- PHP--关于模板的原理和解析
- Android Studio Shortcuts
- 解决ALOGV无法输出的问题
- 联想本,虚拟机下,linux系统,字符界面与图形界面的切换
- 深入理解JavaScript的闭包特性 如何给循环中的对象添加事件