package set;
public class Person {
private String name;
private int age;// 创建构造方法,在new时就给属性传值
public Person(){
}
public Person(String name,int age){
this.name = name;
this.age = age;}
@Override
public String toString(){
return this.name +"\t"+ this.age;}}
package test0812;
import java.lang.reflect.Field;//对所有属性(包括私有属性)进行赋值和取值
public class Test05 {
public voidcreateObj(String className){
try {
Class clazz = Class.forName(className);
Object obj = clazz.newInstance();//获取name属性
Field fieldName = clazz.getDeclaredField("name");//赋予私有属性访问权限--直接访问私有权限,默认为假
fieldName.setAccessible(true);
fieldName.set(obj,"张三");//给name属性赋值
System.out.println(fieldName.get(obj));//张三//获取age属性
Field fieldAge = clazz.getDeclaredField("age");//赋予私有属性访问权限--直接访问私有权限,默认为假
fieldAge.setAccessible(true);
fieldAge.set(obj,23);//给age属性赋值
System.out.println(fieldAge.get(obj));//23//System.out.println(obj);} catch (Exception e){
e.printStackTrace();}}
public staticvoidmain(String[] args){
Test05 t = new Test05();
t.createObj("test0812.Person");}}