作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给出的参数是防止外人访问?谁是局外人?
并且,它是否对不属于任何团队的个人程序员有益?例如。比如不小心修改了程序状态。
最佳答案
这里有一个例子可以帮助你理解
假设你想制作一个游戏,其中你有一个有生命值的 Player 类,你想根据玩家的行为来增加或减少生命值
像这样:
class Player {
public String name;
public int health = 100;
public void addHealth(int amount) {
if(health + amount <= 100){
health = health + amount;
}else {
System.out.println("Invalid amount");
}
}
public void reduceHealth(int amount) {
if(health - amount >= 0){
health = health - amount;
}else {
System.out.println("Invalid amount");
}
}
}
现在,如果您将 health 字段保持为 public,那么您可以随时通过执行以下操作来更改 health
class main {
public static void main(String[] args) {
Player pl1 = new Player();
pl1.health = 50;
}
}
这是因为你已经将health设置为public,但是如果你将health设置为private那么你不能直接改变它。
您将不得不调用一些公共(public)方法,如 addHealth() 或 reduceHealth() 来更改健康值。这也是有益的,因为您可以在这些方法中添加验证,例如,确保健康不超过 100 或低于 0。
但是如果你将健康公开,那么你最终可能会错误地将它更改为错误的值,然后你的游戏就会出现错误。
你会及时意识到封装的重要性
关于java - 我不明白私有(private)访问修饰符的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64675446/
我是一名优秀的程序员,十分优秀!