黑马程序员技术交流社区

标题: 【转】java中instanceof的用法 [打印本页]

作者: David.L    时间: 2014-7-18 22:44
标题: 【转】java中instanceof的用法
本帖最后由 David.L 于 2014-7-18 22:48 编辑

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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2