关于枚举

为了减少BUG,哈哈,以后要多用,貌似到现在为止,我的实用的程序中还没有用到过枚举呢,失败啊
-------------------------------
1 利用枚举有助于减少代码中的bug。因为你可以固定某个变量的值在哪些指中取。

例:enum CoffeeSize{BIG,HUGE,OVERWHELMING};

2 枚举可以在自己的类中声明,也可以在另外一个类中,而访问枚举成员的方法很依赖于枚举声明的位置,记住,不可以在方法内部声明枚举。

3 每个枚举的值其实都是枚举类型的一个实例,拿上面的例子来说,BIG,HUGE,OVERWHELMING分别为CoffeeSize的一个实例。

4 每个枚举的值都知道自己的索引或位置。因为,枚举值的顺序是在声明时就已经决定的,可以将CoffeeSize枚举看作是存在于CofffeeSize类型的数组中。

5 可以为枚举添加构造函数,实例变量,方法,并且每个枚举都有一个静态方法values(),它以声明枚举时的顺序返回这些值的一个数组。

6 枚举的构造函数可以被重写。(有兴趣可进一步研究,呵呵)

例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class TestEnum {
 
	CoffeeSize coffsize;
	public static void main(String[] arg){
		TestEnum te1=new TestEnum();
		te1.coffsize=CoffeeSize.BIG;
        System.out.println(te1.coffsize.getOunces());
		
        TestEnum te2=new TestEnum();
		te2.coffsize=CoffeeSize.BIG;
 
		TestEnum te3=new TestEnum();
		te3.coffsize=CoffeeSize.BIG;
		
		CoffeeSize[] values=CoffeeSize.values();
		for(int i=0;i<values.length;i++){
			CoffeeSize cs=values[i];
			System.out.println("name:"+cs.name()+" ounces:"+cs.getOunces());
			
		}
 
	}
 
}
 
 
enum CoffeeSize{
	BIG(8),HUGE(10),OVERWHELMING(16);
    private int ounces;
	CoffeeSize(int ounces){
		this.ounces=ounces;
	}
	public int getOunces(){
		return this.ounces;
	}
};//end enum


-----------------------------还有几句话要说,哈哈

再说几句:
1 局部变量的生命周期从方法内开始。当方法完成时,局部变量也会被销毁。
2 局部变量总是位于栈上,而不是堆上。
3 不存在栈对象,只有栈变量。
4 合法并不意味值合适 。
5 在声明中包含数组大小永远是不合法的。
6 记住:只有在真正实例化对象时,JVM才会分配空间。因此,实例化是才涉及到数组的大小问题。>

原文地址:https://www.cnblogs.com/lan0725/p/1874012.html