Instance of
instance:引用类型,判断一个对象是什么类型
先看new的对方法,来判断那条线和谁是父子关系
Person person = new Student();
System.out.println(person instanceof Student);//True
System.out.println(person instanceof Teacher);//False
package OOP.demo06;
public class Student extends Person{
public void go(){
System.out.println("go");
}
}
/* public static void main(String[] args) {
//Object——>Person——>Student
//Object——> Person——>Teacher
//Object——>String
Object object = new Student();
//引用的对象 instanceof 类
先看new的对方法,来判断那条线和谁是父子关系
System.out.println(object instanceof Student);//True
System.out.println(object instanceof Object);//True
System.out.println(object instanceof Person);//True
System.out.println(object instanceof Teacher);//False
System.out.println(object instanceof String);//False
System.out.println("=============================");
Person person = new Student();
System.out.println(person instanceof Student);//True
System.out.println(person instanceof Object);//True
System.out.println(person instanceof Person);//True
System.out.println(person instanceof Teacher);//False
//System.out.println(person instanceof String);//False 编译报错
System.out.println("=============================");
Student student = new Student();
System.out.println(student instanceof Student);//True
System.out.println(student instanceof Object);//True
System.out.println(student instanceof Person);//True
//System.out.println(student instanceof Teacher);//编译报错
//System.out.println(student instanceof String);//编译报错
}
Static
Static对象与类一起产生,所以创建对象时先执行Static方法,其次是匿名代码块最后执行构造方法
注:Static方法类型只执行一次
package OOP.demo07;
public final class Person { //final之后断子绝孙
//2.赋初始值
{
System.out.println("匿名代码块");
}
//1.只执行一次
static {
System.out.println("静态代码块");
}
//3.构造方法
public Person(){
System.out.println("构造方法");
}
//单纯的创建对象不执行类里面的方法
public void say(){
System.out.println("4545");
}
public static void main(String[] args) {
Person person=new Person();
System.out.println("===========================");
Person person1 = new Person();//static类型只执行一次
}
}