访问同一类中另一个对象的私有字段

class Person 

{

   private BankAccount account;


   Person(BankAccount account)

   {

      this.account = account;

   }


   public Person someMethod(Person person)

   {

     //Why accessing private field is possible?


     BankAccount a = person.account;

   }

}

请忘记设计。我知道OOP指定私有对象是该类的私有对象。我的问题是,为什么要对OOP进行设计,以使私有字段具有类级别的访问权限而不具有对象级别的访问权限?


红颜莎娜
浏览 511回答 3
3回答

jeck猫

我对这个答案也有点好奇。我找到的最令人满意的答案是来自Artemix,在另一篇文章中(我将AClass重命名为Person类): 为什么使用类级访问修饰符而不是对象级?private修饰符强制执行封装原理。这个想法是“外部世界”不应该对Person内部流程进行更改,因为Person的实现可能会随时间而变化(并且您将不得不更改整个外部世界以解决实现上的差异-这几乎是不可能的)。当Person实例访问其他Person实例的内部时-您可以确保两个实例始终知道Person的实现细节。如果更改了Person过程的内部逻辑-您要做的就是更改Person的代码。编辑:请投票 Artemix的答案。我只是复制粘贴它。
打开App,查看更多内容
随时随地看视频慕课网APP