首页 > 其他分享 >第五章《类的继承》第6节:instanceof运算符

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

时间:2022-12-30 12:31:46浏览次数:60  
标签:instanceof 运算 运算符 Person 第五章 Student true

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

a instanceof X

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

【例05_11 instanceof运算符】

Exam05_11.java​

public class Exam05_11 {
public static void main(String[] args) {
Student s = new Student();
Person p1 = new Person();
Person p2 = new Student();
System.out.println(s instanceof Student);//①
System.out.println(s instanceof Person);//②
System.out.println(p1 instanceof Student); //③
System.out.println(p2 instanceof Student);//④
System.out.println(new Student() instanceof Student);//⑤
System.out.println(new Student() instanceof Person);//⑥
System.out.println(null instanceof Person);//⑦
}
}

【例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。


标签:instanceof,运算,运算符,Person,第五章,Student,true
From: https://blog.51cto.com/mugexuetang/5979873

相关文章

  • 运算符重载
    运算符重载,就是对已有的运算符赋予多重的含义,使同一运算符作用于不同类型的数据时导致不同类型的行为,作用就是扩展c++中已有运算符的范围,使之可以作用于对象,同一运算符对不......
  • 三元运算符
    三元运算符packageoperator;publicclassDemo07{publicstaticvoidmain(String[]args){inta=10;intb=20;a+=b;//a=a+b......
  • 第二章《Java程序世界初探》第7节:关系运算符及条件语句
    ​关系运算符有==、!=、>、>=、<、<=。它们分别表示等于、不等于、大于、大于等于、小于和小于等于。关系运算符的作用是判断两个数据之间是否存在某种逻辑关系。既然是“判......
  • 第二章《Java程序世界初探》第5节:算术运算符
    在学习本小节内容之前,各位读者必须先理解几个概念:运算符、操作数和表达式。所谓“运算符”就是指具有一定运算意义的符号,例如+、-都是运算符。根据运算符完成运算所需数据量......
  • 第二章《Java程序世界初探》第6节:赋值运算符
    ​赋值运算符可以分为两类:普通赋值运算符和复合赋值运算符。普通赋值运算符只能起到简单的赋值作用,而复合赋值运算符则是先完成一次其他类型的运算然后再进行赋值操作。本小......
  • 逻辑运算符、位运算符
    逻辑运算符packageoperator;//逻辑运算符publicclassDemo05{publicstaticvoidmain(String[]args){//与(and)或(or)非(取反)booleana=tr......
  • @05.Python基本运算符
    文章目录​​一.基本运算符的介绍​​​​1.运算符概述​​​​2.运算符的分类​​​​二.基本运算符的使用​​​​1.算数运算符​​​​1》算数运算符的介绍​​​​2》P......
  • Java千问14:学透Java自增自减运算符,看这一篇就够了!
    ​同很多高级编程语言一样,Java语言的运算符系统当中也有自增(++)和自减(--)这两个运算符。很多小伙伴对这两个运算符都深感头疼,并且很多公司在面试的时候也经常会问到与之相关......
  • Java千问11:instanceof运算符用法详解
    ​Java语言当中提供了一个叫做instanceof的运算符。很多教科书上对这个运算符的介绍并不详细,只是简单的说这个运算符是用来判断某个对象是不是属于某种类型。我们现在就用一......
  • Java千问08:关于Java语言复合赋值运算符的两个问题,快来瞧瞧!
    ​我们知道,在Java以及很多高级编程语言当中,都有一种运算符叫做复合赋值运算符。复合赋值运算符由两个符号组成,它所能完成的运算操作也分为两步:第一步是运算,第二步是赋值。比......