13、用普通类实现枚举功能
(1)私有的构造方法
(2)每个元素分别用一个共有静态成员变量表示
(3)采用抽象方法就可以将大量的if、else语句转移成一个个独立的类
14、枚举的基本应用,它是一个特殊的类,其中每一个元素都是该类的一个实例对象,元素必须位于枚举体中最开始的部分,后面以分号结束,不能把成员变量等放在枚举元素的前面,定义一个WeekDay的枚举,调用values、valueOf、name、toString、ordinal、getClass()方法
15、实现带有构造方法的枚举时,构造方法必须为私有,如果实例对象后面没有大括号或者有大括号但值为空,则调用参数为空的构造方法,如果实例对象后面大括号值不为空,则调用有参的构造方法。
16、实现带抽象方法的枚举时,每个元素分别是枚举类的子类来生成的实例对象,有些类似内部类的方式,元素后面可以带有父类参数。枚举只有一个成员时,就可以作为一种单例的实现方式。
17、Class类对应各个类在内存中的字节码,得到各个字节码对应的实例对象有3种方法
- 类名.class
- 对象.getClass()
- Class.forName(“类名”);有9种预定义的Class实例对象,分别是int、float、double、boolean、byte、char、short、long、void
isPrimitive()判断是否是预定义的类型,isArray()判断是不是数组类型,int.class == Integer.TYPE返回结果为true,只要在源程序中出现的类型,都有相应的Class实例对象.18、反射就是把java类中的各种成分映射为相应的java类,一个java类中用一个Class类的对象表示,一个类中的组成部分如成员变量、方法、构造方法、包等,也用一个个的java类来表示,相应类的实例对象分别是Field、Method、Constructor、Package