//运行时创建对象 //方式一: 使用newInstance() 创建 只能调用无参构造
Class student= Student.class;
Student s =(Student) student.newInstance();
System.out.println(s.toString());//方式二: 先获取Constructor对象,然后使用newInstance() 创建
Class student1= Student.class;//获取Student中带有String和int参数的构造方法对象
Constructor c = student1.getConstructor(String.class,int.class);
Student s1 =(Student) c.newInstance("张三",18);
System.out.println(s1.toString());
方法名
说 明
.getMethod(String name , Class[] params)
返回此Class对象所表示的类的指定的public方法
.Method[] getMethods()
返回此Class对象所表示的类的所有public方法
getDeclaredMethod(String name , Class[] prarms)
返回此class对象所表示的类的指定的方法,与方法的访问级别无关
getDeclaredMethod()
返回此class对象所表示的类的全部方法,与方法的访问级别无关
//获取私密性方法
Student s =newStudent();
Class stuclas= Student.class;
Method m = stuclas.getMethod("study", String.class);
m.invoke(s,"Java编程");
方法名
说 明
.getXXX(obj)
获取当前类型的值,该方法中Xxx对应8个基本数据类型.
.get(obj)
获取指定对象上此属性的值
.setXXX(obj , value)
将obj对象的该属性设置成value值(此处的Xxx对应8个基本数据类型)
.set(obj , value)
将obj对象的该属性设置成value值(针对引用类型赋值)
.setAccessible(true)
对获取到的属性设置访问权限
//获取初始化属性,并开放权限
Student s =newStudent();//获取Student类的Class对象
Class student= Student.class;//获取各个访问级别的属性
Field nameField = student.getDeclaredField("name");//取消权限的检查
nameField.setAccessible(true);//调用set方法设置新值
nameField.set(s,"张三");//获取各个访问级别的属性
Field ageField = student.getDeclaredField("age");//取消权限的检查
ageField.setAccessible(true);//调用set方法设置新值
ageField.set(s,20);
System.out.println(s.toString());