码迷,mamicode.com
首页 > 编程语言 > 详细

java 的instanceof方法的使用

时间:2015-01-05 12:44:22      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

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()); } }

 

java 的instanceof方法的使用

标签:

原文地址:http://www.cnblogs.com/amalieSmile/p/4203156.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!