java1. 定义一个Person类,包含属性name、age。 2. 使用反射的方式创建一个实例、调用构造函数初始化name、age。使用反射方式调用setName方法对姓名进行设置,不使用setAge方法直接使用反射方式对age赋值。
时间: 2024-05-11 08:17:16 浏览: 111
java代码-使用java构造Person类。包括姓名(name),性别和年龄(age)的源代码
5星 · 资源好评率100%
代码如下:
```java
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public static void main(String[] args) throws Exception {
Class<Person> clazz = Person.class;
Constructor<Person> constructor = clazz.getConstructor();
Person person = constructor.newInstance();
Field nameField = clazz.getDeclaredField("name");
nameField.setAccessible(true);
nameField.set(person, "小明");
Field ageField = clazz.getDeclaredField("age");
ageField.setAccessible(true);
ageField.setInt(person, 18);
System.out.println(person.getName() + " " + person.getAge());
}
}
```
解释一下代码:
首先我们定义了一个Person类,包含了name和age两个属性,以及相应的构造函数和setter/getter方法。
然后在main方法中,我们使用反射的方式获取Person类的构造函数,创建一个实例。
接着我们使用反射的方式获取name和age两个属性,并将它们设为可访问的。
最后,我们使用反射的方式设置name和age两个属性的值,然后输出结果即可。
需要注意的是,对于int类型的属性,我们不能直接使用set方法来设置属性值,而应该使用setInt方法。
阅读全文