定义一个Student类,并进行封装,初始化对象stu,包含属性name:张三;age:18,通过反射的方式,将该对象的年龄改成19。
时间: 2024-11-09 11:27:54 浏览: 19
深入解析C++中派生类的构造函数
首先,我们可以定义一个名为`Student`的类,使用私有成员变量来封装属性,如姓名`name`和年龄`age`。然后,我们创建一个`Student`对象`stu`,并设置初始值。接下来,我们将使用Java的`java.lang.reflect`包来进行反射操作,修改对象的年龄。
```java
import java.lang.reflect.Field;
public class Student {
private String name;
private int age;
// 构造函数
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// getters and setters (省略)
}
// 创建并初始化对象
Student stu = new Student("张三", 18);
// 使用反射改变年龄
Field field = Student.class.getDeclaredField("age");
field.setAccessible(true); // 允许访问私有字段
field.setInt(stu, 19); // 修改年龄
```
在这个例子中,我们首先获取了`age`字段的`Field`对象,使其可访问(私有属性默认不可直接修改),然后调用`setInt`方法改变了`stu`的年龄。
阅读全文