java的面向对象编程(oop)——认识枚举

前言

打好基础,daydayup!

枚举 

1,认识枚举:

枚举是一种特殊类,用enum语句修饰。与普通类不同的是:枚举类的第一行只能写一些合法的标识符(名称),多个名称用逗号隔开。这些标识符(名称)的本质是常量,每个常量会记住枚举类的一个对象。

2,枚举的格式: 

表达式如下:

修饰符 enum 枚举类名{
名称1,名称2,...;

...其他内容...

}

例:

public enum EnumDemo {
    A,B,C;
    public  void demo1(){}
}

 注:枚举类不能在外部额外创建对象,只能在内部创建对象。内部创建了几个对象,就只能拥有几个对象。创建新对象会报错。同时,如果构建了构造器,那么这个构造器是私有非公开的

如下图:

然后通过javap命令在cmd中进行编译,可以发现枚举的对象都是由final进行修饰的,所以枚举都是最终类,不能被继承。

同时通过反编译可以观测到枚举类是自动继承java.lang.Enum这个类的。并同时继承了values和valueOF两个方法。

3, 枚举的自带方法

1,values方法:

该方法可以把枚举类中的所有对象添加到数组并遍历出来

如下图所示:

2,valueOF方法:

该方法可以通过调用枚举标识符(名称),来调用对象,并可以通过ordinal语句来查看对象索引。值得注意的是:“直接调用对象”和“通过调用名字来调用对象”,从结果上来看效果是一样的,但意义是完全不同的,一定要注意。

4,抽象枚举 

和普通枚举不同,抽象枚举不能直接创建对象。若是直接创建对象,会报错说把类改成抽象类或移除抽象方法。

所以在抽象枚举中,需要在定义对象时重新定义方法。这样就可以避免报错。

5,枚举的使用场景

1,实现单例

单例是把类的构造器私有;定义一个类变量储存类 的一个对象:提供一个类方法返回对象。其特点为:在获取类的对象时,对象已经创建好了。

单例相关可以看这篇

java的面向对象编程(oop)——static概述及初始单例设计模式

这里用枚举类会有一个简单做法。如下

2,用来表示一组信息,然后作为参数进行传输(需要严格限定信息时)

实验要求:男女分类,如果是男生,向左走;如果是女生,向右走。

同样的实验要求也可以用常量做,但是用枚举的好处在于,分类信息一旦确定,很难轻易更改,不容易出差错。但是会比较死板,如果需要灵活的修改数据,还是用常量的方法来做。

结语:

枚举是一个比较封闭式的语句。优点在于数据不容易被篡改,非常安全。缺点在于如果需要经常更改变量方法,则会有些力不从心。总结结束,撒花!!!

  • 34
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值