modificadores de Nível de acesso determinam se outras classes podem usar um campo particular ou invocar um método particular. Existem dois níveis de controle de acesso:
- No nível superior
public
, ou package-private (não explícita modificador). - No nível de membros
public
private
protected
, ou package-private (não explícita modificador).,
uma classe pode ser declarada com o modificador public
, caso em que essa classe é visível para todas as classes em todo o lado. Se uma classe não tem modificador (o padrão, também conhecido como package-private), é visível apenas dentro de seu próprio pacote (os pacotes são chamados grupos de classes relacionadas você aprenderá sobre eles em uma lição posterior.)
no nível de membro, você também pode usar o public
modificador ou sem modificador (package-private) assim como com classes de alto nível, e com o mesmo significado., Para os membros, existem dois modificadores de acesso adicionais: e protected
. The modifier specifies that the member can only be accessed in its own class. protected
modificador especifica que o membro só pode ser acessado dentro de seu próprio pacote (como com o pacote privada) e, além disso, por uma subclasse de sua classe em outro pacote.
A tabela seguinte mostra o acesso aos membros permitido por cada modificador.,Modifier
public
protected
private
The first data column indicates whether the class itself has access to the member defined by the access level., Como você pode ver, uma classe sempre tem acesso aos seus próprios membros. A segunda coluna indica se as classes da mesma embalagem que a classe (independentemente da sua filiação) têm acesso ao Membro. A terceira coluna indica se as subclasses da classe declarada fora da presente Embalagem têm acesso ao Membro. A quarta coluna indica se todas as classes têm acesso ao Membro.os níveis de acesso afectam-no de duas formas., Primeiro, quando você usa classes que vêm de outra fonte, como as classes na plataforma Java, os níveis de acesso determinam quais os membros dessas classes que suas próprias classes podem usar. Em segundo lugar, quando você escreve uma classe, você precisa decidir que nível de acesso cada variável membro e cada método em sua classe deve ter.
vamos olhar para uma coleção de classes e ver como os níveis de acesso afetam a visibilidade. A figura a seguir mostra as quatro classes neste exemplo e como elas estão relacionadas.,
Classes e Pacotes de Exemplo Utilizado para Ilustrar os Níveis de Acesso
a tabela A seguir mostra onde os membros da classe Alpha são visíveis para cada um dos modificadores de acesso que podem ser aplicadas a eles.,ha
public
protected
private
If other programmers use your class, you want to ensure that errors from misuse cannot happen., Os níveis de acesso podem ajudá-lo a fazer isso.
- utilize o nível de acesso mais restritivo que faz sentido para um determinado membro. Use
private
a menos que tenha uma boa razão para não o fazer. - evite
public
campos exceto para constantes. (Muitos dos exemplos no tutorial usam campos públicos. Isto pode ajudar a ilustrar alguns pontos de forma concisa, mas não é recomendado para o código de produção.) Os campos públicos tendem a ligá-lo a uma implementação específica e limitar a sua flexibilidade na Alteração do seu código.