⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample34_6.java

📁 Java SE 6.0前32-34章示的示例代码,简单易学
💻 JAVA
字号:
package wyf.jc;
import java.util.*;
import java.lang.reflect.*;
//自定义用来测试的类
class Student
{
	String sname;//姓名
	int sage;//年龄
	//声明无参构造器
	public Student()
	{
		sname="Tom";
		sage=23;
	}
	//声明有参构造器
	public Student(String sname,int sage)
	{
		this.sname=sname;
		this.sage=sage;
	}
	//声明一个普通方法
	public void sayHello()
	{
		System.out.println("您好,我是"+sname+",今年"+sage+"岁!!!");
	}
}
//主类
public class Sample34_6
{
	public static void main(String args[])
	{
        try
        {
	        //获取Student类对应的Class对象
	        Class sc=Student.class;
	        //获取可以访问的构造器对应的Constructor数组
	        Constructor[] ca=sc.getConstructors();
	        //对数组进行扫描打印构造器的信息
	        System.out.println("构造器名称\t\t参数列表");
	        int size=ca.length;
	        for(int i=0;i<size;i++)
	        {
	        	Constructor tempc=ca[i];
	        	//打印构造器名称
	        	String cname=tempc.getName();
	        	System.out.print(cname+"\t\t");
	        	//循环打印构造器的参数序列
	        	Class[] pa=tempc.getParameterTypes();
	        	int psize=pa.length;
	        	if(psize==0)
	        	{
	        		System.out.print("没有参数");
	        	}
	        	for(int j=0;j<psize;j++)
	        	{
	        		System.out.print(pa[j].getName()+((j==psize-1)?"":", "));
	        	}	        	
	        	//换行
	        	System.out.println();
	        }
	        
	        //使用反射调用有参构造器创建对象
	        Student stu=(Student)ca[0].newInstance(new Object[0]);
	        //调用创建对象的sayHello方法
	        stu.sayHello();	        
	        //使用反射调用有参构造器创建对象
	        stu=(Student)ca[1].newInstance(new Object[]{"王强",new Integer(25)});
	        //调用创建对象的sayHello方法
	        stu.sayHello();     
        }
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -