標籤:
int...a 裡面的...表示可變參數,也就是說這是一個長度不定的數組
instanceof :
instanceof關鍵字用於判斷一個參考型別變數所指向的對象是否是一個類(或介面、抽象類別、父類)的執行個體。 舉個例子: public interface IObject {
}
public class Foo implements IObject{
}
public class Test extends Foo{
}
public class MultiStateTest {
public static void main(String args[]){
test();
}
public static void test(){
IObject f=new Test();
if(f instanceof java.lang.Object)System.out.println("true");
if(f instanceof Foo)System.out.println("true");
if(f instanceof Test)System.out.println("true");
if(f instanceof IObject)System.out.println("true");
}
} 輸出結果:true
true
true
true 另外,數群組類型也可以使用instanceof來比較。比如 String str[] = new String[2];則str instanceof String[]將返回true。2>
JAVA的instanceOf
當你拿到一個對象的引用時(例如參數),你可能需要判斷這個引用真正指向的類。所以你需要從該類繼承樹的最底層開始,使用instanceof操作符判斷,第一個結果為true的類即為引用真正指向的類。
例如下面的例子:
class Person{}
class Student extends Person{}
class Postgraduate extends Student{}
class Animal{}
public class InstanceofTester {
public static void main(String[] args) {
instanceofTest(new Student());
}
public static void instanceofTest(Person p){
// 判斷p的真正類型
if (p instanceof Postgraduate){
System.out.println("p是類Postgraduate的執行個體");
} else if(p instanceof Student){
System.out.println("p是類Student的執行個體");
} else if(p instanceof Person){
System.out.println("p是類Person的執行個體");
} else if(p instanceof Object) {
System.out.println("p是類Object的執行個體");
}
/*if(p instanceof Animal){//此錯編譯錯誤,所以做注釋
System.out.println("p是類Animal的執行個體");
}*/
}
}
這個程式的輸出結果是:p是類Student的執行個體
Person類所在的繼承樹是:Object<--Person<--Student<--Postgraduate。
這個例子中還加入一個Animal類,它不是在Person類的繼承樹中,所以不能作為instanceof的右運算元。
java 文法 java沒學好,休想學好安卓!