public class Person{
private String name;
private int age;
public Person(){}
public Person(String name,int age){
this.age=age;
this.name=name;
show();
}
public Person(String name){
this.name=name;
show();
}
public int getAge(int age) {
return age;
}
public String getName(String name) {
return name;
}
public void setAge(int age) {
this.age=age;
}
public void setName(String name) {
this.name=name;
}
void show()
{
System.out.println(name+"..."+age);
}
}
class PersonDemo{
public static void main(String[] args) throws Exception, NoSuchMethodException {
Constructor<Person> constor=Person.class.getConstructor(String.class);
Person person=constor.newInstance(new String("张三"));//用newInstance初始化指定的构造函数
Method method=Person.class.getMethod("setName", String.class);//获得setName方法
method.invoke(person, "李四a");//调用setName方法对姓名进行设置
Field fields=person.getClass().getDeclaredField("age");//获得指定的成员变量
fields.setAccessible(true);//我会告诉你我就加了这一行代码么。。 fields.set(person,99);//重新为age赋值
person.show();
fields.setAccessible(false);//将指定成员变量设置为不可见
}
}
我会告诉你我就加了一行代码么。。这一行代码的意思,就是取消通过反射访问属性的权限检查。私有的属性,要访问,不加这个肯定会出错。至于后面你设置为false是什么意思呢,,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |