대학에서 공부할 때, 캡슐화없이 작업하는 것과 같은 수업 등의 기본 방법 (자바 스타일 가이드에 대한 토론을 열고 싶지 않습니다. 내가 내 자신을 설명 할 수 내가 행동을 우연히 발견 한 대학이 외부)비공개 필드에 대한 액세스가 금지되지 않은 이유는 무엇입니까?
과 같이 쓸 것이라는 점을 명확히 :
public class Person {
// fields
private int age;
public static void main(String[] args) {
Person foo1 = new Person();
foo1.age = 40;
System.out.println(foo1.age);
}
}
을하는 이유는 무엇입니까 코드 컴파일이 조각 오류없이 실행합니까? 사적인 영역에 어떻게 접근 할 수 있습니까? 동일한 클래스에서 main 메서드를 사용하기 때문에 이상한 동작이 발생합니까?
개인 수정자가 필드 내부에서 액세스 가능하도록 인스턴스를 만들 것을 기대했기 때문에 궁금합니다. C#에서 익숙해 진 것 같습니다. – citronas
@citronas - C#은 정확히 동일한 방식으로 작동합니다. private 한정자는 클래스가 아니라 인스턴스에 적용됩니다. http://msdn.microsoft.com/en-us/library/st6sy9xe.aspx – Nate
+1을 사용하여 클래스의 모든 값을 얻습니다. –