主要是因为面向对象的封装概念。使用 private 关键字,您可以封装对对象变量的访问,控制对象状态。不允许外部对象更改您不知道的对象状态。
一个简单的例子就是 Pocket 对象。
class Pocket {
public int numberOfCoins = 10;
private boolean haveMoney = true;
public void giveOneCoin(){
if(stillHaveMoney()){
numberOfCoins--;
if(numberOfCoins=<0){
haveMoney=false;
}
}
}
public boolean stillHaveMoney(){
return haveMoney;
}
}
现在想象一下另一个以下类:
class PickPockets {
public void getSomeMoney(Pocket pocket){
pocket.numberOfCoins=0;
}
}
虽然这只是一个简单的例子,但它展示了控制访问类字段/属性的重要性。
想象一下一个更复杂的对象,其状态控制更为复杂。封装使得对象的抽象和一致性更好。