详解 instanceof 使用方法

来源:互联网 发布:电力工程造价软件 编辑:程序博客网 时间:2024/04/29 11:08

 instanceof这个方法 很简单啦。就是判断左边的 是不是 右边 的 子类 。。

package Connection;class monkey {}class longarmMonkey extends monkey {}class Engineer extends longarmMonkey {}class engineerSon extends Engineer {}public class Instanceof {public static void main(String[] args) {// 我是谁woIam(new engineerSon());}private static void woIam(Object obj) {if (obj instanceof Object) {System.out.println("我是 祖宗");}if (obj instanceof monkey) {System.out.println("我是猴子");}if (obj instanceof longarmMonkey) {System.out.println("我是长臂猿");}if (obj instanceof Engineer) {System.out.println("我是程序猿");}if (obj instanceof engineerSon) {System.out.println("我是mini程序猿");}}}

所以啊。如果 instanceof  左边的引用 的实例化对象 是右边 类 的子类 那也是返回true的。。

所以 不管你是 第几代玄孙 只要你有 祖先的血统 那么你就是 我的后代

public boolean equals(Object anObject) {//是为了比较是否是同一个引用,是否都是指向同一个内存中的事例    if (this == anObject) {        return true;    }    //    这里就用到了 instanceof  就是判断 穿进来的数据是不是 String类型的 对象 //    这里注意了 虽然 穿进来的是object类型的 但是只能是  String 类 或者是String类的父类才可以 为true          if (anObject instanceof String) {        String anotherString = (String)anObject;//向下转型         int n = value.length;        if (n == anotherString.value.length) {//判断 长度是否一致 为了加快判断            char v1[] = value;            char v2[] = anotherString.value;            int i = 0;            while (n-- != 0) {                if (v1[i] != v2[i])                    return false;                i++;            }//这个判断 的算法很赞啊。。判断两个相同字符串的每一位 是否相同             return true;        }    }    return false;}




0 0
原创粉丝点击