枚举

枚举类

枚举是从jdk1.5开始引入的,引入新的类型--枚举,枚举指由一组固定的常量组成,属性就是常量,java中的每一个枚举都继承自java.lang.Enum类,当定义一个枚举类型时,每一个类型的成员都可以看作是Enum类的实例,这些枚举成员默认为 public static final 修饰,当使用枚举成员时,直接使用枚举名称调用成员即可。

如何声明枚举类型,和枚举常量?

//创建一个性别的枚举
public enum Gender{
    //属性就是常量
    男,女;
    //这种创建的好处是?
    //1.类型安全 2.易于输入 3.代码清晰 4.可读性强大
}

思考一下,我们怎么样用上面这个枚举呢?

//创建一个人的类
public class Person{
    //属性
    private String name;//姓名
    private Gender gender;//性别
    
    public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Gender getGender() {
		return gender;
	}
	public void setGender(Gender gender) {
		this.gender = gender;
	}

    
}

测试枚举类

public class Test{
    public static void main(String[] agrs){
        //创建人的对象
        Person person = new Person();
        //怎么给属性赋值
        person.setName("小丽");
        person.setGender(Gerson.女);
        //赋值枚举类型,因为Gerson是枚举类型
        
        //输出信息
        System.out.println("名字是:"+person.getName()+"性别:"+person.getGender());
    }
}

练习题

为课程三个单元定义枚举:U1,U2,U3分别是 第一,第二,第三单元,编程输出每个单元的学习目标

public enum Course{
    U1,U2,U3;//代表三个单元
}

测试单元类

public class Test{
    public static void main(String[] args){
        Scanner sc=new Scanner(system.in);
        System.out.println("请输入1,2,3,");
        int num=sc.nexInt();
        //给三个单元定义一个统一的变量
        CourseUns u;
        //给三个单元赋值
        if(num==1){
            u=Course.u1;
        }else if(num==2){
            u=Course.U2;
        }else {
            u=Course.u3;
        }
        
        //这一题主要是锻炼大家用枚举类型作为switch里面的条件,来执行相应的操作
        switch(u){
            case U1:
                System.out.println("第一单元成绩");
                break;
            case U2:
                System.out.println("第二单元成绩");
                break;
            case U1:
                System.out.println("第三单元成绩");
                break;
            default:
                break;
        }
        
    }
}

Enum类的常用方法

例题一

values():以数组的形式返回枚举类型的所有成员

通过调用枚举类型实例的values()方法可以将枚举的所有成员以数组形式返回,也可以通过该方法获取枚举的成员。

下面的示例创建一个包含3个成员的枚举类型Colour颜色类,然后调用values()方法输出这些成员。

public enum Color {
    //定义枚举类型
	YELLOW, RED, GREEW;
}
public static void main(String[] args){
    for(int i=0;i<)public static void main(String[] args) {
		for (int i = 0; i < Color.values().length; i++) {
			System.out.println("枚举成员:" + Color.values()[i]);
		}
    }
}
/*
枚举成员:YELLOW
枚举成员:RED
枚举成员:GREEW
*/

2.ordinal() 获取枚举成员的索引为位置

通过枚举类型实例的ordinal()方法可以获取一个成员在枚举的索引的索引位置。下面的实例创建一个3个成员的枚举类型Color类,然后调用ordinal()方法输出成员及对应索引位置

public enum Color {   
	//定义一个枚举类
	GREEN,YELLOW,RED;	
}
public class Test {
	public static void main(String[] args) {
		for (int i = 0; i < Color.values().length; i++) {
			System.out.println("索引" + Color.values()[i].ordinal() + ",值:" + Color.values()[i]);
		}
	}
}
/*
索引0,值:GREEN
索引1,值:YELLOW
索引2,值:RED
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值