在Java中,我理解为什么我们在某个类中将实例字段定义为私有,这是为了保护类的封装。但是,我对该类的实例感到困惑。见下文:
public class DotaHero {
private String name;
...
}
直到现在,任何外部类都无法直接使用name
!然后,
DotaHero zeus = new DotaHero();
zeus.name = "Zeus";
这在Java中是合法的。但是,任何讨厌我的人都会轻易改变我的代码,例如:
zeus.name = "Chick";
然后,当我使用对象zeus
调用“zeusWrath”技能时,它会在屏幕上显示一个脚本,“小鸡很生气!”.........
也许有人会说我应该使用setter方法来定义名称,并在里面配置一些检查机制。但是,我的对手仍然可以通过name
对象直接访问zeus
。
我确信我误解了一些东西,但我找不到它......