手机
当前位置:查字典教程网 >编程开发 >Java >Java中instanceof关键字的用法总结
Java中instanceof关键字的用法总结
摘要:java中的instanceof运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是...

java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

用法:

result = object instanceof class

参数:

Result:布尔类型。

Object:必选项。任意对象表达式。

Class:必选项。任意已定义的对象类。

说明:

如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。

例子如下:

复制代码 代码如下:

package com.instanceoftest;

interface A{}

class B implements A{

}

class C extends B {

}

class instanceoftest {

public static void main(String[] args){

A a=null;

B b=null;

boolean res;

System.out.println("instanceoftest test case 1: ------------------");

res = a instanceof A;

System.out.println("a instanceof A: " + res);

res = b instanceof B;

System.out.println("b instanceof B: " + res);

System.out.println("ninstanceoftest test case 2: ------------------");

a=new B();

b=new B();

res = a instanceof A;

System.out.println("a instanceof A: " + res);

res = a instanceof B;

System.out.println("a instanceof B: " + res);

res = b instanceof A;

System.out.println("b instanceof A: " + res);

res = b instanceof B;

System.out.println("b instanceof B: " + res);

System.out.println("ninstanceoftest test case 3: ------------------");

B b2=(C)new C();

res = b2 instanceof A;

System.out.println("b2 instanceof A: " + res);

res = b2 instanceof B;

System.out.println("b2 instanceof B: " + res);

res = b2 instanceof C;

System.out.println("b2 instanceof C: " + res);

}

}

/*

result:

instanceoftest test case 1: ------------------

a instanceof A: false

b instanceof B: false

instanceoftest test case 2: ------------------

a instanceof A: true

a instanceof B: true

b instanceof A: true

b instanceof B: true

instanceoftest test case 3: ------------------

b2 instanceof A: true

b2 instanceof B: true

b2 instanceof C: true

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

用法: 某个实例对象 instanceof 某个类名

instanceof 通常用于根据不同的实例调用不同的方法:

一、在有继承关系的类中我们可以通过多态来调用不同实例中的不同方法:

例1:

有三个类,类名以及它们之间的关系如下

Animal (Superclass) Dog(Subclass) Cat(Subclass)

则可得出如下对象

Animal animal =new Animal (); ====》animal instanceof Animal 返回 true

Dog dog=new Dog();====》dog instanceof Dog 返回 true

Cat cat=new Cat();====》cat instanceof Cat 返回 true

Animal dog=new Dog();====》dog instanceof Animal 返回 true

Animal cat=new Cat();====》cat instanceof Animal 返回 true

复制代码 代码如下:

Animal dog=new Dog();

Animal cat=new Cat();

List list = new ArrayList();

list.add(dog);

list.add(cat);

Iterator it = list.iterator();

while (it.hasNext()) {

it.next().animalDo();

}

在这里我们可以在Dog与Cat类中重写Animal中的animalDo方法,通过调用animalDo方法,然后会自动根据不同的实例调用不同类中的方法.

二、在没有继承关系的类中,我们可以通过instanceof来判断当前实例,然后很据不同实例调用不同方法:

例2:

复制代码 代码如下:

Station s = new Station();

Cell c = new Cell();

List list = new ArrayList();

list.add(s);

list.add(c);

Iterator it = list.iterator();

while (it.hasNext()) {

Object obj = it.next();

if (obj instanceof Station ) {

Station s1 = (Station ) obj;

s1.stationDo();

}

if (obj instanceof Cell ) {

Cell c1 = (Cell ) obj;

c1.cellDo();

}

}

在这里我们可以通过instanceof 判断结果,执行不同类中的相应动作方法(stationDo()、cellDo())。

一般在使用无泛型的集合(List、set等)时,比较多的使用 instanceof ,由于集合能够存各种对象,所以在读取时一般要进行相应的判断。

【Java中instanceof关键字的用法总结】相关文章:

java中instanceof和getClass()的区别分析

java中常用的排序方法

java JOptionPane类的介绍

深入解析Java中volatile关键字的作用

java中File类的使用方法

java开发之内部类的用法

Java 反射获取类详细信息的常用方法总结

Java 完美判断中文字符的方法

Java中的小知识点总结

java中数组的应用及方法

精品推荐
分类导航