1. 程式人生 > >取得類所實現的介面、取得父類、全部構造方法

取得類所實現的介面、取得父類、全部構造方法

通過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()