枚举类型(enum)
枚举类型比较特殊,因为不管是从我现在看过的书上还是网上,都没有人明确的说枚举类型到底属于基本数据类型还是引用数据类型(引用数据类型在堆区存储具体的值,在栈区声明的变量存储的只是一个引用值,也就是相应的堆区的地址,比如我们在使用数组时要先声明该数组(int[] a;)其实就是在栈区给a这个变量开辟空间,接下来创建数组(a = new int[2];)才是为该数组在堆区分配空间,然后把该空间的引用赋给a)。
所以,简单地说我也很迷惑,希望有个大佬来能真正的给我们答疑解惑吧。
暂且放下疑惑,先来学习枚举类型怎么使用吧:
创建:
枚举类型用关键字enum来创建
enum 枚举类型名{
枚举值1,枚举值2……,枚举值n
}
枚举值可以跟创建类一样单独在一个原文件里创建,然后在其他类里边使用,我就在com.mfs.test包下创建了一个叫Weekday的枚举类型,如:
package com.mfs.test;
public enum Weekday {
Sunday,Monday,Tuesday,Wedesday,Thursday,Friday,Saturday
}
使用:
枚举类型的使用跟基本数据类型差不多,不同的是基本数据类型生命的变量的取值只能是该枚举类型的枚举值,接上个实例:
package com.mfs.test;
public class Main {
public static void main(String []args) {
Weekday day1 = Weekday.Sunday;
Weekday day2 = Weekday.Monday;
Weekday day3 = Weekday.Tuesday;
Weekday day4 = Weekday.Wedesday;
Weekday day5 = Weekday.Thursday;
Weekday day6 = Weekday.Friday;
Weekday day7 = Weekday.Saturday;
System.out.println(day1+" "+day2+" "+day3+" "+day4+" "+day5+" "+day6+" "+day7);
}
}
输出结果为: