0%

instanceof关键字

作用

判断一个对象是否是指定的类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void feedAnimal(Animal anim) {
System.out.println(anim.getClass());
anim.eat();
/**
1.类的强制类型转换:把父类对象赋值给子类类型
2.instanceof : 判断一个对象是否是指定的类,
如果是 返回 true 不是, 就返回 false
*/
if(anim instanceof Dog) {
Dog dog = (Dog)anim;
dog.doWork();
}else if(anim instanceof Cat) {
Cat cat = (Cat)anim;
cat.watch();
}
}

代码块

概念

在类中或方法当中 使用 {} 括起来的一段代码,就称它是一个代码块

总结

分类

局部代码块

直接定义在 方法内部 的代码块,在调用方法的时候执行

初始化代码块

直接在 类当中 定义代码块,初始化代码块在 运行时,还是要把它放到构造方法当中

静态代码块

在初始化代码块前面加上一个 static ,在什么时候执行:在加载字节码时就会自动调用,在主方法之前执行的。只执行一次

类加载问题

类的加载

当第一次创建该类对象的时候,加载到内存当中,在加载时,会执行 static 静态代码块

字段初始化问题

静态字段初始化:是在静态代码块当中初始化,非静态字段初始化:它是在构造器当中做的初始化

子类构造器默认会调用父类的构造器

↓赏一个鸡腿... 要不,半个也行↓