标签:
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
package first; //: initialization/PassingThis.java //this关键字对于当前对象传递给其他方法也很有用 class Person { // public void eat(Apple apple) { // Apple peeled = apple.getPeeled(); // System.out.println("Yummy"); // } Apple apple; Orange orange; public void eat(Object object){
//instanceof方法和下面的object.getClass().getName()的方法效果一样。 // if(object instanceof Apple){ System.out.println(object.getClass().getName()); if(object.getClass().getName().equals("first.Apple")){ apple = ((Apple) object).getPeeled(); System.out.println("我想要的小苹果 :" + apple); } else if(object instanceof Orange){ orange = ((Orange) object).getPeeled(); System.out.println("我想要的小橙子 :" + orange); } else { System.out.println("O.M.G,I have Nothing!"); } } } /* * 是一个外部的工具方法,将执行由于某种原因而必须放在Apple外部的操作。(也许是因为该外部方法要应用于许多不同的类 * 而你却不想重复这些代码。比如,我可以扩展人不仅可以吃苹果还可以吃橙子。我们可以先种一颗橙子。 */ class Peeler { static Apple peel(Apple apple) { System.out.println("种下一颗小苹果 :" + apple); // ... remove peel return apple; // Peeled } static Orange peel(Orange orange){ System.out.println("种下一颗小橙子: " + orange); return orange; } } class Apple { Apple getPeeled() { return Peeler.peel(this); } } class Orange { Orange getPeeled(){ return Peeler.peel(this); } } public class PassingThis { public static void main(String[] args) { new Person().eat(new Apple()); new Person().eat(new Orange()); } }
标签:
原文地址:http://www.cnblogs.com/amalieSmile/p/4203156.html