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的答案。我只是复制粘贴它。
添加回答
举报
0/150
提交
取消