java基础加强---Day2

13、用普通类实现枚举功能

(1)私有的构造方法
(2)每个元素分别用一个共有静态成员变量表示
(3)采用抽象方法就可以将大量的if、else语句转移成一个个独立的类

14、枚举的基本应用,它是一个特殊的类,其中每一个元素都是该类的一个实例对象,元素必须位于枚举体中最开始的部分,后面以分号结束,不能把成员变量等放在枚举元素的前面,定义一个WeekDay的枚举,调用values、valueOf、name、toString、ordinal、getClass()方法

15、实现带有构造方法的枚举时,构造方法必须为私有,如果实例对象后面没有大括号或者有大括号但值为空,则调用参数为空的构造方法,如果实例对象后面大括号值不为空,则调用有参的构造方法。

16、实现带抽象方法的枚举时,每个元素分别是枚举类的子类来生成的实例对象,有些类似内部类的方式,元素后面可以带有父类参数。枚举只有一个成员时,就可以作为一种单例的实现方式。

17、Class类对应各个类在内存中的字节码,得到各个字节码对应的实例对象有3种方法

  1. 类名.class
  2. 对象.getClass()
  3. 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