取得類所實現的介面、取得父類、全部構造方法
阿新 • • 發佈:2019-01-01
通過getInterfaces()方法取得類所實現的介面
package org.lxh.demo15.classinfodemo ; interface China{ // 定義China介面 public static final String NATIONAL = "China" ; // 定義全域性常量 public static final String AUTHOR = "李興華" ; // 定義全域性常量 public void sayChina() ; // 無參的,沒有返回值的方法 public String sayHello(String name,int age) ; // 定義有兩個引數的方法,並返回內容 } public class Person implements China{ private String name ; private int age ; public Person(){ // 無參構造 } public Person(String name){ this.name = name ; // 設定name屬性 } public Person(String name,int age){ this(name) ; this.age = age ; } public void sayChina(){ // 覆寫方法 System.out.println("作者:" + AUTHOR + ",國籍:" + NATIONAL) ; } public String sayHello(String name,int age){ return name + ",你好!我今年:" + age + "歲了!" ; } public void setName(String name){ this.name = name ; } public void setAge(int age){ this.age = age ; } public String getName(){ return this.name ; } public int getAge(){ return this.age ; } };
<strong>通過getInterfaces()方法獲取類實現的介面</strong>
執行結果:package org.lxh.demo15.classinfodemo ; public class GetInterfaceDemo{ public static void main(String args[]){ Class<?> c1 = null ; // 宣告Class物件 try{ c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ; // 例項化物件 }catch(ClassNotFoundException e){ e.printStackTrace() ; } Class<?> c[] = c1.getInterfaces() ; // 以陣列形式返回實現的全部介面 for(int i=0;i<c.length;i++){ System.out.println("實現的介面名稱:" + c[i].getName()) ; // 輸出介面名稱 } } };
實現的介面名稱:org.lxh.demo15.classinfodemo.China
通過getSuperclass()取得父類
執行結果:package org.lxh.demo15.classinfodemo ; public class GetSuperClassDemo{ public static void main(String args[]){ Class<?> c1 = null ; // 宣告Class物件 try{ c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ; // 例項化物件 }catch(ClassNotFoundException e){ e.printStackTrace() ; } Class<?> c2 = c1.getSuperclass() ; // 取得父類 System.out.println("父類名稱:" + c2.getName()) ; } };
父類名稱:java.lang.Object
通過getConstructors()方法取得全部構造方法
package org.lxh.demo15.classinfodemo ;
import java.lang.reflect.Constructor ; // 匯入構造方法的包
public class GetConstructorDemo01{
public static void main(String args[]){
Class<?> c1 = null ; // 宣告Class物件
try{
c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ; // 例項化物件
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
Constructor<?> con[] = c1.getConstructors() ; // 取得一個類中的全部構造
for(int i=0;i<con.length;i++){
System.out.println("構造方法:" + con[i]) ; // 輸出構造,直接列印
}
}
};
執行結果:
構造方法:public org.lxh.demo15.classinfodemo.Person(java.lang.String,int)
構造方法:public org.lxh.demo15.classinfodemo.Person(java.lang.String)
構造方法:public org.lxh.demo15.classinfodemo.Person()