我在看黑馬視頻自學,學到這裏有點疑惑
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)