액세스 한정자
기본적으로 Java 클래스의 모든
필드 및
메서드는
비공개입니다. 이는 아무도 액세스할 수 없음을 의미합니다. 즉, 이 클래스의 개체 외부에서 메서드는 이 클래스의 개체 필드와 메서드를 사용할 수 없습니다.
필드 및 메소드는
액세스 한정자 public
을 사용하여 공개할 수 있습니다. 필드를 비공개로 만드는
private
수정자도 있습니다. 모든 필드와 메서드는 기본적으로 비공개이므로 선택 사항입니다. 다음은
public
및
private
한정자를 사용하는 예입니다.
교과서
{
공개 문자열 이름;
문자열 작성자 이름;
private int ageRequirement;
스트링텍스트;
공공 int pageCount;
int getTextLength()
{
반환 텍스트 길이();
}
공개 int getAverageLetterCount()
{
return getTextLength() / pageCount;
}
개인 정수 getDifficuiltyLevel()
{
return 5 * ageRequirement * text.Length();
}
}
이 버전의 도서
클래스에서는 name
및 pageCount
필드가 다른 개체에서 읽고 수정할 수 있도록 공개됩니다. getAverageLetterCount()
메서드는 다른 클래스의 개체에서 호출할 수도 있습니다. 다른 모든 필드와 메서드는 비공개로 유지되며 이 클래스의 메서드에서만 사용할 수 있습니다. 공개 메소드 getAverageLetterCount()
에서 getAverageLetterCount()
가 클래스 자체에 속하기 때문에 비공개 메소드 getTextLength()
를 호출할 수 있습니다. 그러나 다른 클래스의 메서드에서는 작동하지 않습니다.
그런데 왜 필드를 비공개로 만들까요? Java 코드에서는 대부분 비공개 필드만 볼 수 있습니다. 사실 개인 필드에 대한 액세스가 개체의 공용 메서드를 통해 수행되는 경우 개인 필드에 대한 이러한 액세스를 통해 추가 작업 및 검사를 수행할 수 있습니다. 이에 대한 자세한 내용은 캡슐화에 대한 강의에서 설명합니다.