----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
【枚举】
枚举就是个类,枚举的成员就是这个类的实际对象
定义枚举类:可以理解为把定义类时的class换成enum
如:
public class WeekDay(){} 类
public enum WeekDay(){} 枚举
一些共用不变的东西,可以用枚举类来定义规则,如周一至周天用0-6来表示,可以定义成枚举,
指定0-6对应的星期,你只能用枚举定义的,不用就报错,保证了程序的安全和键状
举例:
public class TrafficLamp1(){
public static void main(String[] args) {
TrafficLamp tl = TrafficLamp.FRI;
System.out.println(tl);
}
}
public enum TrafficLamp{
RED(30) {
public TrafficLamp nextLamp() {return GREEN;
}},GREEN(45) {
public TrafficLamp nextLamp() {return YELLOW;
}},YELLOW(5) {
public TrafficLamp nextLamp() {return RED;
}};
public abstract TrafficLamp nextLamp();
private int time;//每个灯都有自已的时间
private TrafficLamp(int time){
this.time = time;
};【反射】
}
Class 代表类的字节码 类的字节码就是Class的一个对象
得到类的字节码:三种1、字节类被加载过已经呆在JVM里面了
Person.class ; 类名.class
p1.getClass(); 对象.getClass()
Class.forName("java.long.String"); 静态 做反射都用这个
2、java虚拟机里面还没有这份字节码,则用类加载器去加载,
加载进来的字节码就缓存在JVM里面了
9种预定义Class对象,延时加载
8个基本对象也有对应的class
还有一个:void.class
数组类型的Class实例对象用的是Class的isArray()
总之,只要是在源程序中出现的类型,都有各自的Class实例对象,例如:int[],void
对字节码的比较用==比
反射:反射就是把java类中的各种成分映射成相应的java类