首页 > 代码库 > 详解 instanceof 使用方法

详解 instanceof 使用方法

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




详解 instanceof 使用方法