面向对象(中)之二

1 instanceof操作符

1.1 语法及说明

  • 语法:
x(对象) instanceof A(类名)
  • 说明:
  • ①要求对象所属的类和类A必须是子类和父类的关系,否则编译错误。
  • ②如果x属于类A的子类B,x instanceof A值也为true。

1.2 instanceof操作符的应用示例

  • 示例:
package day13;

public class Person {
}
View Code
package day13;

public class Student extends Person {
}
View Code
package day13;

public class Demo {
    public static void main(String[] args) {
        Person p = new Student();
        if(p instanceof Student){
            System.out.println("p的实际类型是Student");
        }
    }

}
View Code

2 对象类型转换

2.1 基本数据类型的转换

  • 自动类型转换:小的数据类型可以自动转换成大的数据类型。
package day13;

public class Demo {
    public static void main(String[] args) {
        int i = 100;
        long l = i;
        System.out.println("l:" + l);
    }
}
  • 强制类型转换:可以把大的数据类型强制的转换成小的数据类型,但是可能会丢失精度。
package day13;

public class Demo {
    public static void main(String[] args) {
        double d = 20.0;
        float f = (float) d;
        System.out.println("f:" + f);
    }
}

2.2 对象类型转换

  • 向上类型转换:从子类到父类的类型转换,其实就是多态。
package day13;

public class Person {
}
package day13;

public class Student extends Person {
}
package day13;

public class Demo {
    public static void main(String[] args) {
        Person p = new Student();
        System.out.println(p);
    }
}
  • 向下类型转换:从父类到子类的类型转换必须通过()来实现。
package day13;

public class Person {
}
package day13;

public class Student extends Person {
}
package day13;

public class Demo {
    public static void main(String[] args) {
        Person p = new Student();
        Student s = (Student) p;
        System.out.println(s);
    }
}

2.3 图解基本类型转换和对象类型转换

3 Object类

3.1 Object类的简介

  • Object类是所有类的根类。
  • 如果在类的声明中没有使用extends关键字指明其父类,则默认父类是Object类,换言之,Object类是所有类的直接或间接父类。

3.2 Object类的主要结构

 

猜你喜欢

转载自www.cnblogs.com/xuweiweiwoaini/p/10940545.html