對于一般的成員變量,對其提供簡單的getter/setter封裝即可。而對于一個集合類,不能夠這樣做。
對于一個簡單的成員變量,可以這樣:
<b>class</b> Athlete {
<b>private</b> String name;
<b>public</b> String getName() {
<b>return</b> name;
}
<b>public</b> <b>void</b> setName(String name) {
<b>this</b>.name = name;
// ......
}
而如果是一個Set/List/Map或數組,應該:
[1]初始化這個集合類;
[2]提供對單個元素的add/remove;
[3]提供加入另一個集合的方法。如果是基于此初始化,則先保證目前集合無元素;
[4]對于getter方法,應該傳回該集合的隻讀試圖;
[5]提供目前集合size。
<b>public</b> <b>class</b> Game {
<b>private</b> Set<Athlete> players = <b>new</b> HashSet<Athlete>();// 1
<b>public</b> <b>void</b> addPlayer(Athlete one) {// 2
players.add(one);
<b>public</b> <b>void</b> removePlayer(Athlete one) {// 2
players.remove(one);
<b>public</b> <b>void</b> addPlayers(Set<Athlete> set) {// 3
Iterator<Athlete> iter = set.iterator();
<b>while</b> (iter.hasNext())
addPlayer(iter.next());
<b>public</b> <b>void</b> initializaPlayers(Set<Athlete> set) {// 3
<b>if</b> (getAttendNumbers() > 0)
players.clear();
players.addAll(set);
<b>public</b> Set<Athlete> getAllPlayers() {// 4
<b>return</b> Collections.unmodifiableSet(players);
<b>public</b> <b>int</b> getAttendNumbers() {// 5
<b>return</b> players.size();
本文轉自zhangjunhd51CTO部落格,原文連結:http://blog.51cto.com/zhangjunhd/71263,如需轉載請自行聯系原作者