Programação Orientada a Objetos: Uma Abordagem com Java/Princípios da programação na linguagem Java/Classes Java/Visibilidade: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Criou a página com "= Visibilidade da classe e seus membros = Em Java, a visibilidade padrão de classes, atributos e métodos, quando não definida explicitamente, está restrita a todos os m..."
 
(Sem diferenças)

Edição atual desde as 18h07min de 16 de agosto de 2016

Visibilidade da classe e seus membros editar

Em Java, a visibilidade padrão de classes, atributos e métodos, quando não definida explicitamente, está restrita a todos os membros que fazem parte de um mesmo pacote.

A palavra-chave public modifica essa visibilidade de forma a ampliá-la, deixando-a sem restrições.

Uma classe definida como pública pode ser utilizada por qualquer objeto de qualquer pacote. Em Java, uma unidade de compilação (um arquivo fonte com extensão .java) pode ter no máximo uma classe pública, cujo nome deve ser o mesmo do arquivo (sem a extensão). As demais classes na unidade de compilação, não públicas, são consideradas classes de suporte para a classe pública e têm a visibilidade padrão.

Um atributo público de uma classe pode ser diretamente acessado e manipulado por objetos de outras classes. De modo geral, atributos de uma classe não devem ser públicos, por violar o princípio da ocultação da informação.

Um método público de uma classe pode ser aplicado a um objeto dessa classe a partir de qualquer outro objeto de outra classe. O conjunto de métodos públicos de uma classe determina o que pode ser feito com objetos da classe, ou seja, determina o seu comportamento.

A palavra-chave protected restringe a visibilidade do membro modificado, atributo ou método, apenas à própria classe e àquelas derivada desta.

A palavra-chave private restringe a visibilidade do membro modificado, método ou atributo, exclusivamente a objetos da própria classe que contém sua definição. Geralmente é utilizada para atributos e métodos internos (auxiliares) da classe.