Java 的instanceof的用法

转载 2010年05月24日 22:31:00

instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:

  String s = "I AM an Object!";
  boolean isObject = s instanceof Object;

  我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是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在绝大多数情况下并不是推荐的做法,应当好好利用多态。

计算机基础win7的基本用法

掌握计算机的基本操作,掌握win7的基本用法,达到自己计算机的平常维护,学会办公软件的用法,为继续学习IT技术打好基础。 win7基本用法和优化、备份,办公软件用法,多媒体用法
  • 2018年01月17日 11:15

java中instanceof的用法和实战

java中instanceof的用法和实战。java 中的instanceof 是一个二元操作符(运算符)运算符,由于是字母组成,所以是Java的保留关键字,...
  • qq_37192800
  • qq_37192800
  • 2017-12-21 11:08:13
  • 220

JAVA中instanceof的作用和用法

本文转载自:http://blog.csdn.net/liranke/article/details/5574791(侵删) java 中的instanceof 运算符是用来在运行时指出对象是否是特...
  • s1163543584
  • s1163543584
  • 2016-03-25 15:24:41
  • 2107

Java初学习 - instanceof的用法

package myPackage; /** * instanceof运算符用法 * 运算符是双目运算符,左面的操作元是一个对象,右面是一个类.当 * 左面的对象是右面的类创建的对象时,该运...
  • cnmilan
  • cnmilan
  • 2014-12-03 13:43:36
  • 53146

Java中instanceof运算符用法详解

一、 instanceof运算符可以确定对象是否属于一个特定的类。该运算符是二目运算符,左边的操作元是一个对象,右边是一个类,当左边的对象是右边的类或子类创建的对象时,该运算符运算的结果是true,...
  • lmm0513
  • lmm0513
  • 2017-11-26 09:23:43
  • 168

java中instanceof关键字的用法

instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类(也可以是接口,可以把接口理解成一种特殊的类),它用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如...
  • love_java_cc
  • love_java_cc
  • 2015-01-18 20:23:49
  • 1298

java基础之instanceof的用法

nstanceof是Java的一个二元操作符,和==,>, String s = "I am an object!";  boolean isObject = s instanceof Objec...
  • u010214991
  • u010214991
  • 2015-10-09 14:52:07
  • 859

java中instanceof和isInstance

直接写代码: /** * Created by cxh on 17/07/21. */ interface A{} class B{} class C implements A{} clas...
  • caoxiaohong1005
  • caoxiaohong1005
  • 2017-07-22 23:25:36
  • 145

Java:多态 之 向下转型+Instanceof关键字

Animal.java: package com.imooc.animal; public class Animal { private String name; private...
  • Zzwtyds
  • Zzwtyds
  • 2017-10-21 20:04:39
  • 214
收藏助手
不良信息举报
您举报文章:Java 的instanceof的用法
举报原因:
原因补充:

(最多只允许输入30个字)