首頁 > 後端開發 > C++ > 同一類別中的物件如何存取私有欄位?

同一類別中的物件如何存取私有欄位?

Patricia Arquette
發布: 2024-11-15 06:18:02
原創
754 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板