gpt4 book ai didi

java - 一个类的对象可以访问它的私有(private)方法吗?

转载 作者:行者123 更新时间:2023-11-29 08:34:37 25 4
gpt4 key购买 nike

我是 OOPS 编程的初学者。我正在阅读一本书中的访问修饰符的概念并卡在了一个地方:

代码如下(我没有关心代码的语法,因为怀疑是概念上的):

public class Soldier{
private int health;
public int getHealth(){
return health;
}
public void setHealth(int newHealth){
health = newHealth;
}
}

class Hospital{
private void healSoldier(Soldier soldierToHeal){
int health = soldierToHeal.getHealth();
health = health + 10;
soldierToHeal.setHealth(health);
}

public static void main(){
Soldier mySoldier = new Soldier();
mySoldier.setHealth(100);
Hospital militaryHospital = new Hospital();

mySoldier.setHealth(10); //Soldier wounded
militaryHospital.healSoldier(mySoldier);//Soldier's health increased by 10
}
}

我对 healSoldier(Soldier soldierToHeal) 方法有疑问。由于此方法是私有(private)的,根据我对 private 访问修饰符的理解,它只能在 Hospital 类中访问。但是我们在 main 中使用相同的方法来治疗士兵。类的对象是否可以从 main 访问其私有(private)方法?

提前致谢!!

最佳答案

允许这样做的唯一原因是您的 main 方法属于同一类的主体 - Soldier - 也包含 Hospital 的主体 类。这允许它访问 Hospital 类的任何实例的所有 private 成员和方法。

也就是说,如果 Hospital 类的对象将被其他类使用,并且应该被允许调用 healSoldier,您应该使 healSoldier 公开。 Hospital 类作为 Soldier 类的内部类毫无意义。它应该是顶级类(class)。

关于java - 一个类的对象可以访问它的私有(private)方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45126549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com