先看下面TestModel:apache
import org.apache.commons.collections4.BidiMap; import org.apache.commons.collections4.bidimap.DualHashBidiMap; public class TestModel { BidiMap bidiMap = new DualHashBidiMap(); BidiMap getBidiMap() { bidiMap.put("testkey","testvalue"); return bidiMap; } }
運行下面測試代碼,你猜結果會是什麼?編程
@Test public void test() { TestModel testModel = new TestModel(); System.out.println(testModel.bidiMap.size()); testModel.getBidiMap(); System.out.println(testModel.getBidiMap().getKey("testvalue")); }
結果是:測試
0
testkey
結論:spa
一個類的屬性和方法,在不加訪問修飾符的狀況下,可訪問性默認是public,————可不是private哦! 因此,在定義類成員時,注意使用修飾符來限定可訪問性。code
按照編程規範,將屬性定義成private的,即定義爲私有字段,而後經過get/set方法將其暴露出去。blog
諸如上面的TestModel,定義的就很差,可讀性差,容易給人形成誤解。bidiMap和getBidiMap()都能被外界訪問,那麼別人在使用TestModel時就會模棱兩可。get