首页 > 后端开发 > C++ > 正文

同一类中的对象如何访问私有字段?

Patricia Arquette
发布: 2024-11-15 06:18:02
原创
673 人浏览过

How Can Objects in the Same Class Access Private Fields?

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

在 Java 中,私有访问修饰符将字段可见性限制在该字段所在的类中被宣布。然而,一个常见的误解是,此限制适用于同一类中的对象。

考虑以下示例:

class Person {
  private BankAccount account;

  Person(BankAccount account) {
    this.account = account;
  }

  public Person someMethod(Person person) {
    // Why is accessing private field possible?
    BankAccount a = person.account;
  }
}
登录后复制

为什么可以访问 person.account?

private 修饰符强制封装以保护对象的内部状态免受外部修改。然而,在同一个类中,对象共享相同的实现细节。他们知道类的私有字段和方法。

正如 Artemix 所解释的:

“这个想法是‘外部世界’不应该对 Person 的内部流程进行更改,因为 Person 的实现可能会改变(并且您必须改变整个外部世界来修复实现中的差异 - 这几乎是不可能的)。”

因为同一类中的对象共享相同的实现知识,授予他们访问私有字段的权限可确保他们始终能够正确访问和操作类的内部状态。如果实现发生变化,只需要更新类代码,无需修改类外的代码。

因此,OOP 设计允许私有字段具有类级别的访问,而不是对象级别的访问促进封装,同时保持类实现中的一致性。

以上是同一类中的对象如何访问私有字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板