黑马程序员_java总结_枚举

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

现在总结JAVA中的枚举.整理一下关于枚举的知识,通过整理枚举的内容大体可以分为以下几个方面的

1.定义枚举的方式.
2.枚举的实现原理.
3.更复杂的枚举.
4.在使用时要注意的.

枚举是当某一个对象只有为数不多种取值的时候用于表现对象的,比如路灯的颜色只有红绿黄三
种.如果直接用三个数字来表示的话可读性太差,而用三个有名字的值来表示就可以很容易的知道这是
三种颜色了,所以为了程序的可读性,在对象的取值不多的情况下还是用枚举吧!先说第一点.

1.定义枚举的方式.

在JAVA中枚举是用关键字enum来表示的,要定义一个枚举对象可以用以下格式:
public enum Traffic
{
//第一行用于写上这个对象的可取的值,用","分开.如:
Red,Green,Yellow;
}
这样就定义了一个最简单的枚举对象,它有三个取值,Red,Green,Yellow;在谈更复杂的枚举之前先来看
看它的原理

2.枚举的实现原理.
枚举其实就是一个类.它是由在这个类内部用给定这个类对象的引用的方式实现的.如下:
public Traffic
{
//先把构造方法私有化.这样就能保证除了我内部有的以外不能再创建别的对象.
private Traffic{}
//创建Red,Green,Yellow,三个对象,定义它所有的取值.
public static Traffic Red = new Traffic();
public static Traffic Green = new Traffic();
public static Traffic Yellow = new Traffic();
}
我们在想要用的时候就只能够取这三个取值中的一个.如:
Traffic newColor = Traffic.Red;
像上面这样就简单的模拟了一下JAVA中枚举的实现,而JAVA中把这一步帮我们简化了,可以直接
像上面那样定义了.

3.更复杂的枚举.
既然枚举它其实是一个类,那么肯定可以给它定义方法和属性了,而这些在JAVA的枚举中也是可以
的,在枚举中定义属性和方法的格式:还是使用前一个的方式.

public enum Taffic
{
Red(60)//由于加入了一个带参数的构造方法,所以要实例化时要传入一个值
{
//由于定义了一个抽象方法,所以在实例化时还得覆写一下.用内部类实现
public abstract Taffic next()
{
return Green;
}
},
Green(50)//下面这些也是同样的道理.
{
public abstract Taffic next()
{
return Yellow;
}
},
Yellow(5)
{
public abstract Taffic next()
{
return Red;
}
};
//定义一个成员变量,用于表示它所持续的时间.
private int time;
//定义一个抽象方法,返回下一个对象.
public abstract Taffic next();
//由于定义了成员变量,所以加入一个构造方法.
private Taffic(int time)
{
this.time = time;
}
}

就这样一个比较复杂的枚举就出现了,当然如果是一步步的加入还是很容易理解的.
现在是最后一点,也是比较内容出错的地方.需要多多的注意一下!

4.在使用时要注意的.
1.枚举中的元素列表,必须写在枚举类的最前面.如果列表过后没有其它内容则
可以不用写";",否则必须加上";".
2.枚举类中的所有的构造方法都是私有的,如果自己要写构造方法需要注意.
3.枚举类中如果有抽象方法,则必须在元素列表外以内部类的格式实现.
4.枚举类可以做为 switch语句的条件使用.

关于枚举的知识到这里也就差不多了,枚举的总结就到此为止!

转载于:https://www.cnblogs.com/Occasionally-desert/archive/2013/02/11/2910109.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值