java面试题网

普通会员

257

帖子

9

回复

131

积分

楼主
发表于 2018-03-22 09:39:15 | 查看: 381| 回复: 0

(1)调用空参数的构造函数:使用了Class类中的newInstance()方法。

//第一步:获取字节码文件

//①通过 Class.forName(“类名”)来获取字节码文件

Class clazz = Class.forName("cn.wuliaokankan.bean.Person");

//②通过 类.class  通过加载器来获取字节码文件

clazz = Person.class;

//③通过 对象.getClass() 来获取字节码文件

Object obj = new Person("zhangsan", 19);

clazz = obj.getClass();

//第二步:通过节码文件,创建对象

Object obj = clazz.newInstance();

//该实例化对象的方法调用就是指定类中的空参数构造函数,给创建对象进行初始化。

(2)调用带参数的构造函数:先要获取指定参数列表的构造器,然后通过该构造函数的对象的newInstance(实际参数)进行对象的初始化。

public static void method_2() throws Exception {

//既然类中没有空参数的构造函数,那么只有获取指定参数的构造函数,用该函数来进行实例化。

Class clazz = Class.forName("cn.wuliaokankan.bean.Person");

//获取一个带参数的构造器。

Constructor constructor = clazz.getConstructor(String.class,int.class);

//想要对对象进行初始化,使用构造器的方法newInstance();

Object obj = constructor.newInstance("zhagnsan",30);

//获取所有构造器。

Constructor[ ] constructors = clazz.getConstructors();    //只包含公共的

//constructors = clazz.getDeclaredConstructors();       //本类公有,包含私有的

for(Constructor con : constructors) {

System.out.println(con);

}

}



您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018