instanceof 与 对象类型转换
-
instanceof是判断一个对象是否与一个类有关系的关键字
-
先看引用类型,再看实际类型
-
*例子:obj instanceof A
-
先看obj的类型是否与A有关联,无关联则报错,有关联则判断obj的实际类型
-
因为obj的实际类型是son,所以String类与他无关,所以返回false
对象类型转换:
-
发生在父子之间,子类转父类自动转换,父类转子类则需要强制转换
Student exteds Person
Person stu = new Student(); //子类对象转为父类,自动转换
Student student = (Student) stu //父类对象转化为子类,强制转换,为了方便方法的调用
static关键字
-
static关键字可用于修饰属性、方法
静态属性:
public static int num;
静态方法:
public void static main(){}
静态与非静态有啥区别呢?
-
我们可通过类名直接调用静态方法或者静态变量,非静态方法或变量则是要通过对象来调用
静态代码块
static{}
-
用于初始化操作,最先执行且只执行一次
我们分别创建了两个对象,第一对象创建时,静态代码块运行了,第二次创建对象时就不运行了
静态导入包
import static java.lang.Math.random;
与普通导入包不同的是,静态导入的random可直接使用,不再需要写Math.random