前段時間,寫程序時,出了錯誤,竟然沒有想到是自己屬性命名的問題,哎~~~真是一定要注意規范呀,在這里我從網上找了些,規范作為參考
Sun?推薦的命名規范
1?,類名要首字母大寫,后面的單詞首字母大寫
2?,方法名的第一個單詞小寫,后面的單詞首字母大寫
3?,變量名的第一個單詞小寫,后面的單詞首字母大寫
為了使?JavaBean?的屬性名和存取方法都符合規范,?Sun?在?JSR?文檔中規定了屬性名和存取方法名的映射規則:?①屬性名對應的存取方法為?get/set?加上首字母大寫的屬性名,如屬性?userName?的存取方法為setUserName/getUserName?。這樣屬性名和存取方法都符合命名規范。這個規則強制的,如果不符合規則就會出現異常。
但是這里有一個例外規則,?Sun?考慮在偶然的情況下會有全大寫的屬性名,所以又定了一條規則:?②如果屬性名的第二個字母是大寫,則它的存取方法是?set/get?加上屬性原名。
上面兩個屬性與存取方法的映射規則如下:
①?屬性名對應的存取方法為?get/set?加上首字母大寫的屬性名,如屬性?userName?的存取方法為setUserName/getUserName?。
②如果屬性名的第二個字母是大寫,則它的存取方法是?set/get?加上屬性原名。
應用這兩個規則時有兩個特殊情況需要注意?,屬性名的第一個單詞只有一個字母,如?sName?,按照第?2?條映射規則,它的存取方法為?setsName/getsName?。這樣存取方法名就與方法名的命名規范有一定的出入,按規范應該是setSName/getSName?。所以最好不要讓屬性名的第一個單詞只有一個字母。另一個特殊情況是起了一個不符合規范的屬性名?Sname?,首字母大寫后面的小寫,這種情況既沒有映射規則,也是不允許出現的。
例子:
public void?setAge(int age){?
?? ?????this.age = age;??????
}
public int getAge(){
??????? return this.age;
}
Age-->如果第二個字母是小寫的,則把第一個字母變成小的-->age
?例如:如果你看到JavaBean中的如下的方法,你應該能判讀出他所能操作的JavaBean屬性的名稱
?gettime()--->time
?setTime()--->time
?getCPU()--->CPU
?getsName --->sName
下面用一個表格說明映射規則。
屬性名/類型 | getter 方法 | setter 方法 |
xcoordinate/Double | public Double getXcoordinate() | public void setXcoordinate(Double newValue) |
xCoordinate/Double | public Double getxCoordinate() | public void setxCoordinate(Double newValue) |
XCoordinate/Double | public Double getXCoordinate() | public void setXCoordinate(Double newValue) |
Xcoordinate/Double | 不允許 | 不允許 |
student/Boolean | public Boolean getStudent() | public void setStudent(Boolean newValue) |
student/boolean | public boolean getStudent() public boolean isStudent() | public void setStudent(boolean newValue) |