枚举

来源:互联网 发布:java怎么判断奇数偶数 编辑:程序博客网 时间:2024/06/17 04:52
1、5.0之后用枚举,之前用类来实现
---------------------------------------------------------------------------
package com.huanhaun;

public class Demo3 {

public void test(){
print(Grade.A);
}
public void print(Grade g)
{//A,B,C,D,E
}
}

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();
}//这是角度看5.0之前采用自定义类的方法

或者使用:

enum Grade{//相当于类
      A,B,C,D,E;//相当于类内部的对象
//这是5.0之后的采用枚举的方法
}
**************************************************************************************************
2、枚举类中增加构造方法(必须是私有的)
---------------------------------------------------------------------------
package com.huanhaun;

import org.junit.Test;

public class Demo3 {

@Test
public void test(){
print(Grade.A);
}
public void print(Grade g)
{//A,B,C,D,E
String value = g.getValue();
System.out.println(value);
}
}

//如何定于枚举的构造函数,方法,和字段去封装更多的信息
enum Grade{//相当于类
A("100-90"),B("89-80"),C("79-70"),D("69-60"),E("59-0");//相当于类里面的对象
private String value;
private Grade(String value)//枚举的构造方法一定是私有的
{
this.value = value;
}
public String getValue(){
return this.value;
}
}
********************************************************************************************************
3、带抽象方法的枚举
-----------------------------------------------------------------------------------
package com.huanhaun;

import org.junit.Test;

public class Demo3 {

@Test
public void test(){
print(Grade.A);
}
public void print(Grade g)
{//A,B,C,D,E
String value = g.getValue();
String value1 = g.localValue();
System.out.println(value);
System.out.println(value1);
}
}


enum Grade{
A("100-90"){
public String localValue(){
return "优";
}
}
,B("89-80")
{
public String localValue()
{
return "良";
}
}
,C("79-70")
{
public String localValue()
{
return "一般";
}
}
,D("69-60")
{
public String localValue()
{
return "差";
}
}
,E("59-0")
{
public String localValue()
{
return "不及格";
}
};
private String value;
private Grade(String value){
this.value = value;
}
public String getValue(){
return this.value;
}
public abstract String localValue();
}
***********************************************************************************************************
4、枚举的常用方法
------------------------------------------------------------------------------------------
package com.huanhaun;

import org.junit.Test;

public class Demo3 {

//测试枚举的常用方法
@Test
public void test2()
{
System.out.println(Grade.C.name());//得到Grade.C的名称
System.out.println(Grade.C.ordinal());//得到Grade.C的位置
//把字符串转成枚举值
String str = "B";
Grade g = Grade.valueOf(Grade.class, str);
//或者是用下面的代码也可以
//Grade g = Grade.valueOf(str);
System.out.println(g);
Grade gs[] = Grade.values();//取出枚举中的所有值
for(Grade g1:gs)
{
System.out.println(g1);
}
}
}
enum Grade{
A("100-90"){
public String localValue(){
return "优";
}
}
,B("89-80")
{
public String localValue()
{
return "良";
}
}
,C("79-70")
{
public String localValue()
{
return "一般";
}
}
,D("69-60")
{
public String localValue()
{
return "差";
}
}
,E("59-0")
{
public String localValue()
{
return "不及格";
}
};
private String value;
private Grade(String value){
this.value = value;
}
public String getValue(){
return this.value;
}
public abstract String localValue();
}
0 0
原创粉丝点击