instanceof這個(gè)方法 很簡單啦。就是判斷左邊的 是不是 右邊 的 子類 。。 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 左邊的引用 的實(shí)例化對象 是右邊 類 的子類 那也是返回true的。。 所以 不管你是 第幾代玄孫 只要你有 祖先的血統(tǒng) 那么你就是 我的后代 public boolean equals(Object anObject) { // 是為了比較是否是同一個(gè)引用,是否都是指向同一個(gè)內(nèi)存中的事例 if (this == anObject) { return true; } // 這里就用到了 instanceof 就是判斷 穿進(jìn)來的數(shù)據(jù)是不是 String類型的 對象 // 這里注意了 雖然 穿進(jìn)來的是object類型的 但是只能是 String 類 或者是String類的父類才可以 為true if (anObject instanceof String) { String anotherString = (String)anObject;//向下轉(zhuǎn)型 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++; }//這個(gè)判斷 的算法很贊啊。。判斷兩個(gè)相同字符串的每一位 是否相同 return true; } } return false;} |
|