Person
package com.company;
public class Person {
private String name;
public int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
private Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
public void show() {
System.out.println("老大");
}
private String showNation(String nation) {
System.out.println("我的国籍是:"+nation);
return nation;
}
}
测试类
package com.company;
import org.junit.Test;
/*
通过反射创建对应的运行时类的对象
*/
public class NewInstanceTest {
@Test
public void test1() throws IllegalAccessException, InstantiationException {
Class<Person> clazz = Person.class;
//newInstance():调用此方法,创建对应的运行时类的对象(运行时类在这里指的是Person);内部调用了运行时类的空参的构造器
/*
要想此方法正常的创建运行时类的对象,需要:
1、运行时类必须提供空参的构造器
2、空参构造器的访问权限得够。通常设置为public. 权限修饰符从小到大private<缺省(defaolt)<proteced<public
在javaBean中要求提供一个public得空参构造器。原因
1、便于通过反射,创建运行时类的对象
2、便于子类继承此运行时类时,默认调用super()时,保证父类有此构造器
*/
Person p1 = clazz.newInstance();
System.out.println(p1);
}
}