Problem

3/6

Modificadores de Acesso

Theory Click to read/hide

Modificadores de acesso
Por padrão, todos os campose métodos de uma classe em Java são privados. Isso significa que ninguém pode acessá-los, o que significa que fora dos objetos dessa classe, nenhum método pode usar os campos e métodos dos objetos dessa classe.

Campos e métodos podem se tornar públicos com o modificador de acesso public. Há também um modificador private que torna o campo privado. É opcional, pois todos os campos e métodos são privados por padrão. Aqui está um exemplo de uso dos modificadores public  e private. livro escolar { stringname público; String autorNome; private int ageRequirement; Stringtexto; public int pageCount; int getTextLength() { return tamanho do texto(); } public int getAverageLetterCount() { return getTextLength() / pageCount; } private int getDifficuiltyLevel() { return 5 * idadeRequisito * text.Length(); } }
Nesta versão da classe Book, os campos name e pageCount são tornados públicos para leitura e modificação em outros objetos. O método getAverageLetterCount() também está disponível para ser chamado a partir de objetos de outras classes. Todos os outros campos e métodos permanecem privados e estão disponíveis apenas nos métodos desta classe. No método público getAverageLetterCount() podemos chamar o método privado getTextLength() porque getAverageLetterCount() pertence à própria classe. Mas não funcionará de um método de outra classe.

Mas por que então tornar os campos privados? No código Java, você verá apenas campos privados. O fato é que, se o acesso a campos privados for realizado por meio dos métodos públicos do objeto, com qualquer acesso a campos privados será possível realizar ações e verificações adicionais. Mais sobre isso estará na lição sobre encapsulamento.

Problem

Torne todos os campos da classe Book privados. Remova todos os métodos que ele possui atualmente.

Crie um método público chamado setText (tipo de retorno void) com um argumento newText que mudará o valor de text para newText. Adicione um método privado getWordsCount que contará o número de palavras no texto e o retornará como int.
A palavra — uma sequência de quaisquer caracteres, entre os quais não há espaço.

É garantido que vários espaços seguidos não podem ir.