21年度大连热度高的java学习机构,现在大连市面上的java培训机构有很多,但在师资力量课程安排上会有所差异,因此如何选择适合自己的机构就成为了目前面临的难题。小编在这里为您推荐大连迪派电脑学校,开设电脑设计培训,建工培训,小语种培训等课程适用于集体教学与个别指导相结合等方式”,培训整体偏重于实战型.为不影响您的学习,来校区前请先电话或QQ咨询,方便我校安排相关课程的专业老师为您解答~~接下来迪派教育的小编为您分享,Java枚举一些不为人知的干货,这一篇全了
Java枚举,也称作Java枚举类型,是一种字段由一组固定常量集合组成的类型。枚举的主要目的是加强编译时类型的安全性。enum关键字是Java中的保留关键字。
在编译或设计时,当我们知道所有变量的可能性时,尽量使用枚举类型。本篇文章就带大家全面系统的了解枚举的使用,以及会遇到的一些问题。
Java中的枚举
枚举通常是一组相关的常量集合,其他编程语言很早就开始用枚举了,比如C++。从JDK1.5起,Java也开始支持枚举类型。
枚举是一种特殊的数据类型,它既是一种类(class)类型却又比类类型多了些特殊的约束,这些约束也造就了枚举类型的简洁性、安全性以及便捷性。
在Java中,通过enum来声明枚举类型,默认继承自java.lang.Enum。所以声明枚举类时无法再继承其他类。
枚举声明
在生活中我们会经常辨认方向,东南西北,它们的名称、属性等基本都是确定的,我们就可以将其声明为枚举类型:
public enum Direction{
EAST,WEST,NORTH,SOUTH;
}
同样,每周七天也可以声明成枚举类型:
enum Day{
MONDAY,TUESDAY,WEDNESDAY,
THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
在没有枚举或没使用枚举的情况下,并不是说不可以定义变量,我们可以通过类或接口进行常量的定义:
public class Day{
public static final int MONDAY=1;
public static final int TUESDAY=2;
public static final int WEDNESDAY=3;
public static final int THURSDAY=4;
public static final int FRIDAY=5;
public static final int SATURDAY=6;
public static final int SUNDAY=7;
}
但这样存在许多不足,如在类型安全和使用方便性上。如果存在定义int值相同的变量,混淆的几率还是很大的,编译器也不会提出任何警告。因此,当能使用枚举的时候,并不提倡这种写法。
枚举的底层实现
上面我们已经说了,枚举是一个特殊的类,每一个枚举项本质上都是枚举类自身的实例。
因此,上面枚举类Direction可以通过下面代码进行示例:
final class Direction extends Enum{
public final static Direction EAST=new Direction();
public final static Direction WEST=new Direction();
public final static Direction NORTH=new Direction();
public final static Direction SOUTH=new Direction();
}
首先通过javac命令对Direction进行编译,然后通过javap命令来查看一下对应class文件内容:
bogon:enums apple$javap Direction.class
Compiled from"Direction.java"
public final class com.choupangxia.enums.Direction extends java.lang.Enum<com.choupangxia.enums.Direction>{
public static final com.choupangxia.enums.Direction EAST;
public static final com.choupangxia.enums.Direction WEST;
public static final com.choupangxia.enums.Direction NORTH;
public static final com.choupangxia.enums.Direction SOUTH;
public static com.choupangxia.enums.Direction[]values();
public static com.choupangxia.enums.Direction valueOf(java.lang.String);
static{};
}
可以看到,一个枚举在经过编译器编译过后,变成了一个抽象类,它继承了java.lang.Enum;而枚举中定义的枚举常量,变成了相应的public static final属性,而且其类型就抽象类的类型,名字就是枚举常量的名字。
尊重原创文章,转载请注明出处与链接:http://www.soxsok.com/wnews580253.html 违者必究! 以上就是关于“21年度大连热度高的java学习机构”的全部内容了,想了解更多相关知识请持续关注本站。