我在看黑马视频自学,学到这里有点疑惑
1)成员变量:使用private修饰的 明确写出的 变量
属性:setter和getter方法截取后的产物(仔细体会这句话)
个人认为在使用setProperty方法时,内部会根据javabean中的set方法来进行传值,setProperty操作的是属性而非成员变量,可以看测试代码:
private String gender;
public void setHehe(String gender){
this.gender = gender;
}
public String getHehe(){
return gender;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", gender='" + gender + '\'' +
'}';
}
public void test(){
User user = new User();
try {
BeanUtils.setProperty(user,"gender","male");
System.out.println(user);
BeanUtils.setProperty(user,"Hehe","male1");
System.out.println(user);
BeanUtils.setProperty(user,"hehe","male2");
System.out.println(user);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
结果:
User{id=0, username='null', password='null', gender='null'}
User{id=0, username='null', password='null', gender='null'}
User{id=0, username='null', password='null', gender='male2'}
三种情况只有第三种传值成功(注意必须是set方法中写好的名称同时小写开头 hehe 而非Hehe)