`

instanceof简介

阅读更多
 instanceof是Java的一个二元操作符,和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。
举个例子:   String s = "I AM an Object!";   boolean isObject = s instanceof Object;   我们声明了一个String对象引用,指向一个String对象,然后用instanceof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为true。   instanceof有一些用处。比如我们写了一个处理账单的系统,其中有这样三个类:   public class Bill {//省略细节}   public class PhoneBill extends Bill {//省略细节}   public class GasBill extends Bill {//省略细节}   在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。假设两种账单计算方法不同,而传入的Bill对象可能是两种中的任何一种,所以要用instanceof来判断:   public double calculate(Bill bill) {   if (bill instanceof PhoneBill) {   //计算电话账单   }   if (bill instanceof GasBill) {   //计算燃气账单   }   ...   }   这样就可以用一个方法处理两种子类。   然而,这种做法通常被认为是没有好好利用面向对象中的多态性。其实上面的功能要求用方法重载完全可以实现,这是面向对象编程应有的做法,避免回到结构化编程模式。只要提供两个名字和返回值都相同,接受参数类型不同的方法就可以了:   public double calculate(PhoneBill bill) {   //计算电话账单   }   public double calculate(GasBill bill) {   //计算燃气账单   }   所以,使用instanceof在绝大多数情况下并不是推荐的做法,应当好好利用多态。   instanceof 一般情况下 用在对象类型的强制转换 ,   例如:   继承关系 class Manager extends Employee   ----------------------------------------------------------   public void doSomething(Employee e) {   if ( e instanceof Manger){   Manager m = (Manager) e ;   }   }   网络释义   1. 运算符 返回一个 Boolean 值,表明某个对象是否为特定类的一个实例。...instanceof 运算符...返回一个 Boolean 值,表明某个给定的数是否是有穷的。   2. 和回调概念  instanceof和回调概念...instanceof和回调概念...   3. 动态的   4. 操作符  
分享到:
评论

相关推荐

    PHP强制对象类型之instanceof操作符

    ### instanceof操作符简介 `instanceof`操作符的语法格式如下: ```php objeto instanceof Clase objeto instanceof Interfaz ``` 这里,`objeto`是你想要检查的对象,而`Clase`或`Interfaz`是你期望的类名或...

    java16编程工具他来了

    一、JDK 16.0.1简介 JDK(Java Development Kit)是Java编程语言的开发环境,包含了编译器、调试器、JRE(Java Runtime Environment)等必要组件。版本16.0.1是Oracle公司发布的一个重要更新,它在Java 16的基础上...

    最新版windows jdk-18_windows-x64_bin.zip

    ### JDK 18简介 JDK 18是Java语言的一个重要版本,它包含了Java编译器、JVM(Java虚拟机)、JRE(Java运行环境)以及各种开发工具,如Javadoc、JConsole和VisualVM等。这个版本主要关注新特性的引入和现有特性的...

    SCJP 中文大纲简介~

    - **运算符的应用**:了解各种运算符(包括赋值运算符和`instanceof`运算符)应用于不同类型的操作数时的结果。 - **String 类的比较**:掌握`String`类的`equals`方法的使用,包括与其他类型(如`Boolean`和`Object...

    javaSE代码实例

    9.7 instanceof的使用 172 9.7.1 基本语法与使用 172 9.7.2 不允许进行测试的情况 174 9.8 小结 175 第10章 构造器——对象制造的工厂 176 10.1 基础知识 176 10.1.1 编写构造器的语法规则 176 ...

    openjdk-19-ea+4_windows-x64_bin.zip

    **Java JDK 19简介** Java Development Kit (JDK) 是Java编程语言的核心组件,它包含了一组开发和运行Java应用程序所需的工具和库。这里我们关注的是`openjdk-19-ea+4_windows-x64_bin.zip`,这是一个早期访问...

    JDK 17.0.7 downloads - Linux - x64 Debian Package

    3. **Pattern Matching for instanceof(模式匹配用于instanceof)**:改进了类型检查,使得代码更加简洁。 4. **Switch Expressions增强**:扩展了switch语句的功能,使其可以作为表达式使用,返回值并且支持更多...

    详解Javascript中prototype属性(推荐)

    1. **构造函数简介** 构造函数是一种特殊类型的函数,用于创建具有特定属性和方法的对象。构造函数通常用来初始化新创建的对象,它们不需直接调用,而是通过`new`关键字来执行。在JavaScript中,构造函数的首字母...

    JavaOOPTrainingCourse

    InstanceOf 关键字。 异常(已检查、未检查、错误)。 编写自己的异常。 第 4 课。 接口(功能接口,默认方法)。 事件驱动编程。 比较对象(Comparator vs Comparable)。 第5课。 输入/输出。 字节流。 缓冲流...

    HTMLParser的使用

    一、HTMLParser简介 HTMLParser项目可以在`http://htmlparser.sourceforge.net/`找到,这是一个开源项目,提供了一个全面的API来解析HTML文档。它支持HTML4和HTML5的部分特性,并且具有良好的灵活性和可扩展性。你...

    jdk-17.0.1-doc-all.zip

    3. **Pattern Matching for instanceof**:改进了instanceof操作符,允许模式匹配,提高代码可读性。 4. **ZGC:Z Garbage Collector**:一种低延迟的垃圾收集器,适用于大内存应用。 5. **Text Blocks**:一种新的...

    php网络开发完全手册

    5.6.2 实例类型的判断方法instanceof 78 5.6.3 对象的克隆 78 5.7 一些设计观念 80 5.7.1 策略模式(Strategy Pattern) 81 5.7.2 单例模式(Singleton Pattern) 81 5.7.3 工厂模式(Factory Pattern) 83 5.8 接口...

    android tabbar

    1. **BottomNavigationView简介** `BottomNavigationView`是Android Design Support Library的一部分,它遵循Material Design指南,为用户提供一种直观的多页面导航方式。这个控件提供了预设的图标和文字,可以轻松...

    poi excel导出

    一、Apache POI简介 Apache POI是一个开源项目,最初由Glen Stampoultzis创建,现由Apache软件基金会维护。该项目提供了一组API,使Java开发者可以处理Microsoft Office格式的文件。对于Excel,POI提供了HSSF...

    poi读取excel

    ### POI库简介 Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式的文件,包括 Excel、Word 和 PowerPoint。其中,处理 Excel 文件的功能主要由 HSSF(对应 `.xls` 文件)和 XSSF(对应 `.xlsx` ...

    HtmlParser的使用

    一、HTMLParser简介 HTMLParser提供了对HTML文档的解析能力,能够识别HTML标签、属性、文本内容等元素。它的设计目标是易于使用且健壮,即使面对不规则或非标准的HTML也能进行有效处理。这个库特别适合那些需要从...

    DesignPatterns[removed]JavaScript设计模式

    文件简介 singleton.js 单体模式 runobject.js 即时对象模式,可直接调用对象内部的方法 newobject.js 实例化构造函数的全过程 initbranches.js 初始化分支是一种优化模式,当知道某个条件在整个生命周期内都不会发生...

    深入理解javascript原型和闭包1

    (12)——简介【作用域】 作用域决定了变量的可见性和生命周期,JavaScript有两种主要的作用域:全局作用域和局部作用域。局部作用域一般在函数内部声明,全局作用域在函数外部声明。此外,ES6引入了块级作用域,如...

Global site tag (gtag.js) - Google Analytics