OOP 원칙은 무단 수정을 방지하기 위해 비공개 클래스 멤버에 대한 액세스를 제한하여 캡슐화를 시행합니다. 그런데 다음 코드에서는 비공개 가시성에도 불구하고 다른 Person 개체의 account 필드에 액세스할 수 있는 이유는 무엇입니까?
class Person { private BankAccount account; Person(BankAccount account) { this.account = account; } public Person someMethod(Person person) { // Why is accessing the private field possible? BankAccount a = person.account; } }
반대 객체 수준 액세스에 대한 기대에 따라 Java의 비공개 필드에는 클래스 수준 액세스 권한이 있습니다. 이 설계는 다음과 같은 이유에서 비롯됩니다.
결론:
클래스 수준 액세스 비공개 필드의 경우 캡슐화를 강화하고 구현 독립성을 보장하며 동일한 클래스 내의 개체 간 상호 작용을 촉진하는 의도적인 디자인 선택입니다. 반직관적으로 보일 수도 있지만, 이 디자인은 객체 지향 프로그래밍의 무결성과 유연성을 유지하는 데 필수적입니다.
위 내용은 같은 클래스에 있는 다른 개체의 비공개 필드에 액세스할 수 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!