1.代码举例
/**
* @author wkq
* @date 2020/3/5 - 13:36
* Person类
*/
public class Person {
public String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person() {
System.out.println("Person()");
}
private Person(int age) {
this.age = age;
}
public void show(){
System.out.println("我是一个人");
}
public String showNation(String nation){
System.out.println("我是一个"+nation+"人");
return nation;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Class<Person> clazz = Person.class;
Person obj = clazz.newInstance();
System.out.println(obj);
运行结果
Person()
p = Person{name=‘null’, age=0}
2.说明
newInstance():调用此方法,创建对应的运行时类的对象。内部调用了运行时类的空参的构造器。
要想此方法正常的创建运行时类的对象,要求:
1.运行时类必须提供空参的构造器
2.空参的构造器的访问权限得够。通常,设置为public。
在javabean中要求提供一个public的空参构造器。原因:
1.便于通过反射,创建运行时类的对象
2.便于子类继承此运行时类时,默认调用super()时,保证父类此构造器