为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红颜莎娜 2019-10-25 11:07:27
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进行设计,以使私有字段具有类级别的访问权限而不具有对象级别的访问权限?
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

我对这个答案也有点好奇。


我找到的最令人满意的答案是来自Artemix,在另一篇文章中(我将AClass重命名为Person类): 为什么使用类级访问修饰符而不是对象级?


private修饰符强制执行封装原理。


这个想法是“外部世界”不应该对Person内部流程进行更改,因为Person的实现可能会随时间而变化(并且您将不得不更改整个外部世界以解决实现上的差异-这几乎是不可能的)。


当Person实例访问其他Person实例的内部时-您可以确保两个实例始终知道Person的实现细节。如果更改了Person过程的内部逻辑-您要做的就是更改Person的代码。


编辑:请投票 Artemix的答案。我只是复制粘贴它。


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 508 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信