枚举

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();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值