Problem

3/6

액세스 한정자

Theory Click to read/hide

액세스 한정자
기본적으로 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 코드에서는 대부분 비공개 필드만 볼 수 있습니다. 사실 개인 필드에 대한 액세스가 개체의 공용 메서드를 통해 수행되는 경우 개인 필드에 대한 이러한 액세스를 통해 추가 작업 및 검사를 수행할 수 있습니다. 이에 대한 자세한 내용은 캡슐화에 대한 강의에서 설명합니다.

Problem

Book 클래스의 모든 필드를 비공개로 만듭니다. 현재 가지고 있는 메서드를 모두 제거합니다.

text 의 값을 변경하는 하나의 인수 newText를 사용하여 setText(반환 유형 void)라는 공개 메서드를 만듭니다. newText로. 텍스트의 단어 수를 세고 int로 반환하는 전용 getWordsCount 메서드를 추가합니다.
단어 — 공백이 없는 임의의 문자 시퀀스.

연속으로 여러 공간이 갈 수 없도록 보장됩니다.