Modificadores de acesso em Java
Modificadores de acesso em Java determinam como será a visibilidade de uma classe, atributo ou método a partir de outras classes ou métodos.
Alguns modificadores podem ser usados para os esses três itens, porém outros podem ser específicos para as classe. Veja:
public: Uma classe declarada como pública dá as outras classes, de todos os pacotes, acesso aos seus membros que forem públicos também. Lembre-se porém que classes de diferentes pacotes precisam ser importadas para poderem ter visibilidade.
O mesmo se aplica aos membros da classe (métodos e atributos) que se forem declarados como públicos também são visíveis em todas as classes de todos os pacotes.
Por exemplo, imagine duas classes A e B, ambas públicas, nesse cenário você consegue instanciar um objeto do tipo B na classe A e acessar os membros da classe B.
private: O membro da classe não pode ser acessado por nenhuma outra classe, quando é declarado private. Como não é visto pelas subclasses, não se aplica regras de overriding (sobrescrição).
Esse modificador não se aplica a classes, somente a seus membros (métodos e atributos).
protected: Quando um membro da classe é declarado assim, ele se torna acessível por classes do mesmo pacote ou através de herança.
Os membros herdados não são acessíveis a outras classes fora do pacote em que foram declarados. Você só pode usar esse modificador em métodos e atributos.
default (padrão): A classe e/ou seus membros são acessíveis somente por classes do mesmo pacote.
public class MinhaClasse //classe do tipo pública
Outros modificadores de acesso:
final: Quando é aplicado à classe não permite estende-lá, nos métodos impede que o mesmo seja sobrescrito (overriding) na subclasse, já nas variáveis impossibilita que essa seja reinicializada com outro valor.
abstract: Classes declaradas como abstratas provém um modo de adiar a implementação de métodos também declarados como abstratos para subclasses. Uma classe abstrata não pode ser instanciada, ou seja, não podemos chamar os seus construtores.
A primeira classe não abstrata que estender a classe abstrata deverá implementar todos os métodos abstratos herdados, esse modificador não se aplica à variáveis.
static: Variáveis e métodos marcados como static pertencem à classe, ao invés de alguma instância dessa, esse modificador não se aplica a classes.
Domine as boas práticas com projetos práticos que vão te ajudar a desenvolver sistemas e se destacar no mercado de programação.
Clique na imagem abaixo e conheça mais detalhes do nosso curso:
Link do curso: https://go.hotmart.com/S90628636G?src=siteCB
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits