Heim > Artikel > Backend-Entwicklung > Wie können Objekte derselben Klasse auf private Felder zugreifen?
Zugriff auf private Felder von Objekten in derselben Klasse
In Java beschränkt der private Zugriffsmodifikator die Feldsichtbarkeit auf die Klasse, in der sich das Feld befindet wird deklariert. Ein häufiges Missverständnis besteht jedoch darin, dass diese Einschränkung für Objekte innerhalb derselben Klasse gilt.
Betrachten Sie das folgende Beispiel:
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; } }
Warum ist der Zugriff auf person.account möglich?
Der private Modifikator erzwingt die Kapselung, um den internen Zustand eines Objekts vor externen Änderungen zu schützen. Innerhalb derselben Klasse weisen Objekte jedoch dieselben Implementierungsdetails auf. Sie sind sich der privaten Felder und Methoden der Klasse bewusst.
Wie Artemix erklärt:
„Die Idee ist, dass die ‚äußere Welt‘ keine Änderungen an den internen Prozessen der Person vornehmen sollte, da sich die Implementierung der Person ändern kann.“ Zeit (und man müsste die gesamte äußere Welt ändern, um die Unterschiede in der Implementierung zu beheben – was nahezu unmöglich ist).“
Da Objekte innerhalb derselben Klasse das gleiche Implementierungswissen teilen, wird ihnen Zugriff auf private Felder gewährt stellt sicher, dass sie jederzeit korrekt auf den internen Status der Klasse zugreifen und ihn bearbeiten können. Wenn sich die Implementierung ändert, muss nur der Klassencode aktualisiert werden, wodurch die Notwendigkeit entfällt, Code außerhalb der Klasse zu ändern.
Daher ermöglicht das OOP-Design privaten Feldern den Zugriff auf Klassenebene statt auf Objektebene Erleichtern Sie die Kapselung und wahren Sie gleichzeitig die Konsistenz innerhalb der Klassenimplementierung.
Das obige ist der detaillierte Inhalt vonWie können Objekte derselben Klasse auf private Felder zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!