• 第五章《类的继承》第6节:instanceof运算符


    Java语言中,有一个叫做instanceof的运算符,它能够判断一个对象是否归属于某一个类或它的子类。instanceof运算符的书写格式为:

    a instanceof X

    其中a是一个对象,也可以是指向某个对象的引用,而X则表示一个类的名称。如果a是X或X子类的对象,则运算结果为true,否则运算结果为false。以下的【例05_11】演示了如何使用instanceof运算符判断对象所属类型。

    【例05_11 instanceof运算符】

    Exam05_11.java

    1. public class Exam05_11 {
    2.     public static void main(String[] args) {
    3.         Student s = new Student();
    4.         Person p1 = new Person();
    5.         Person p2 = new Student();
    6.         System.out.println(s instanceof Student);//①
    7.         System.out.println(s instanceof Person);//②
    8.         System.out.println(p1 instanceof Student); //③
    9.         System.out.println(p2 instanceof Student);//④
    10.         System.out.println(new Student() instanceof Student);//⑤
    11.         System.out.println(new Student() instanceof Person);//⑥
    12.         System.out.println(null  instanceof Person);//⑦
    13.     }
    14. }

    【例05_11】中,语句①-⑦ 使用instanceof运算符进行了7次运算,这些运算的结果分别是:true、true、false、true、true、true、false。下面逐一分析每条语句的运算过程。语句① 中,引用s指向了Student类的对象,所以运算结果为true。语句② 中,s所指向的对象属于Student类,而Student又是Person的子类,所以运算结果也为true。语句③ 中,p1所指向的是一个Person类对象,然而并非所有Person类对象都属于Student类,所以运算结果为false。语句④中,引用p2的类型虽然是Person,但它实际指向的却是一个Student类的对象,所以运算结果为true。语句⑤、⑥实际上是语句①、②的翻版,只不过是把instanceof运算符左边的引用换成了对象,所以运算结果与语句①、②的运算结果相同,均为true。语句⑦是一种较为特殊的情况,instanceof运算符左边是空对象null。在Java语言中,只要空对象出现在instanceof运算符左边,其运算结果都为false,所以语句⑦的运算结果为false。

    除阅读文章外,各位小伙伴还可以点击这里观看我在本站的视频课程学习Java!

  • 相关阅读:
    104. Go单测系列4---编写可测试的代码
    界面控件DevExpress WPF PDF Viewer,更快实现应用的PDF文档浏览
    基于Java+SpringBoot+vue+element实现婚纱摄影网系统
    您的 IT 基础架构是否已为企业内容管理(ECM)软件做好准备?
    一文搞懂临床预测模型的评价
    COLMAP输出的文件类型(bin, txt)
    [附源码]java毕业设计归元种子销售管理系统
    【新的小主机】向日葵远程控制ubuntu
    Active Directory用户登录报告
    MYSQL 数据库各类属性说明 (持续更新)
  • 原文地址:https://blog.csdn.net/shalimu/article/details/128022340