Introdução aos modificadores de acesso em Java

Como todos sabemos, Java é uma das principais linguagens de programação do mundo. Bilhões de dispositivos contam com isso nas últimas duas décadas. Java é uma linguagem rápida, confiável, segura e de várias plataformas. O Java é executado em qualquer dispositivo, desde que ele possua Java Runtime (JRE), o que o torna uma linguagem multiplataforma, rápida e confiável. O modificador de acesso é propriedade do java, o que o torna seguro em várias plataformas. Java fornece segurança em nível de classe (durante o encapsulamento) ao programador usando a propriedade modificador de acesso. De acordo com o livro, Class é o modelo para a construção de um objeto no java, o que o torna um "bloco de construção" para o programa, pois Java é uma linguagem orientada a objetos. Um modificador de acesso especifica como qualquer classe pode acessar uma determinada classe e seus campos, construtores e métodos, e pacotes diferentes. Classe, campos, construtores e métodos podem ter um dos quatro modificadores de acesso Java diferentes.

  • Privado
  • Público
  • Protegido
  • Padrão - nenhuma palavra-chave é necessária.

Modificadores de acesso diferentes em Java

A tabela a seguir resume como podemos aplicar modificadores de acesso Java ao programa:

ModificadoresClassePacotesSubclasseMundo
PrivadoYNNN
PúblicoYYYY
ProtegidoYYYN
PadrãoYYNN

Abordaremos cada modificador de acesso Java nas seções a seguir.

1) Padrão

Quando qualquer classe, membros de dados e a variável é declarada não gravando com um modificador de acesso, ela é definida como modificador de acesso 'padrão'. O modificador de acesso 'padrão' significa que o código dentro de qualquer classe pode acessar o programa inteiro dentro do mesmo pacote.

  • Este modificador de acesso funciona apenas no mesmo pacote.
  • Às vezes, o modificador de acesso 'padrão' também é chamado de modificador de acesso ao pacote, pois é acessível apenas no mesmo pacote.
  • As subclasses não podem acessar métodos, membros de dados e variáveis ​​(campos) na superclasse, se esses métodos, membros de dados e variáveis ​​(campos) estiverem marcados com o modificador de acesso 'padrão' na classe, a menos que essas subclasses estejam localizadas no mesmo pacote que o superclasse.

Exemplo 1:

//Java program to show the default modifier.
package Test;
//Where Class eduCBA is having Default access modifier as no access modifier is specified here
class eduCBA
(
void display ()
(
System.out.println("Hello World!");
)
)

Resultado:

Olá Mundo!

Exemplo 2:

//Java program to show error while using class from different package with default modifier
package test2;
import test.*;
//This class check is having default access modifier
class Check
(
public static void main(String args())
(
//accessing class eduCBA from package test
eduCBA obj = new eduCBA();
obj.display();
)
)

Resultado:

Erro de tempo de compilação.

2) Protegido

A sintaxe 'protegida' é usada pelos usuários quando desejam usar esse modificador de acesso.

  • Esse modificador de acesso é acessível apenas dentro do mesmo pacote ou das mesmas subclasses em diferentes classes (mas os usuários precisam importar esse pacote para onde foi especificado).
  • O usuário não pode marcar a classe e fazer interface com o modificador de acesso 'protegido'. No entanto, métodos e campos podem ser declarados como protegidos se métodos e campos estiverem em uma interface.

Por exemplo:

//Java program to show to protected access modifier
package test;
//Class eduCBA
public class eduCBA
(
protected void display ()
(
System.out.println("Hello World!");
)
)
//Java program to show to protected modifier in same sub-classes of different packages
package test2;
import test.*;
//Class pro is subclass of eduCBA
class pro extends eduCBA
(
public static void main(String args())
(
pro obj = new pro();
obj.display();
)
)

Resultado:

Olá Mundo!

3) Público

O usuário pode declarar uma classe, método, construtor e interface com um modificador de acesso "público", que pode acessar por qualquer classe, método, construtor e interface em pacotes diferentes.

  • Este modificador de acesso tem o limite entre todos os modificadores.
  • Quando qualquer classe, método ou pacote é marcado com modificador de acesso 'público', onde é acessível a todos de todos os lugares do programa.
  • Não há limitações no escopo da classe de acesso 'pública', métodos.

Por exemplo: -

//Java program to show to public access modifier
package test;
public class eduCBA
(
public void display ()
(
System.out.println("Hello World!");
)
)
package test2;
import test.*;
class pub
(
public static void main (String args ())
(
eduCBA obj = new eduCBA ();
obj.display ();
)
)

Resultado:

Olá Mundo!

4) Privado

Quando um método ou variável marcado como modificadores de acesso 'particulares', o código dentro dessa mesma classe só pode acessar esses métodos e variáveis.

O usuário não pode declarar nenhuma superclasse com modificador de acesso 'privado' no programa e, se o usuário fizer isso com qualquer classe, ela não poderá ser acessada por nenhuma outra classe no mesmo pacote, o que torna a classe inútil. o usuário pode declarar variáveis ​​e métodos dentro da classe com o modificador de acesso 'privado', para que ninguém possa utilizar essas variáveis ​​e métodos.

Ocasionalmente, as pessoas se confundem com os modificadores de acesso 'privado' e 'protegido', mas ambos são diferentes.

Por exemplo: -

//Program to show error while using a class from different packages with private modifier.
package test;
class eduCBA
(
private void display()
(
System.out.println("Hello World!");
)
)
class Check
(
public static void main (String args())
(
eduCBA obj = new eduCBA();
//make class check to access private method of another class eduCBA.
obj.display();
)
)

Resultado:

erro: display () tem acesso privado no eduCBA obj.display ();

Conclusão

O modificador de acesso Java oferece uma vantagem extra sobre seu programa quando você o torna público. Como estudamos acima, Diferentes tipos de modificadores de acesso em JAVA e suas especificações.

Portanto, lembre-se sempre que você usar um deles como acesso à classe ou à interface, pois eles não apenas fornecem acesso, mas também os substituem. Embora sempre exista uma preocupação quanto à acessibilidade do método no programa. Por exemplo, se uma interface recebe o modificador de acesso 'padrão' na superclasse, é permitido substituir os modificadores de acesso usados ​​na subclasse do método.

Nota: A classe inclui variáveis, construtores, campos e métodos, e a interface inclui campos ou métodos específicos.

Artigos recomendados

Este é um guia para Modificadores de Acesso em Java. Aqui discutimos os diferentes tipos de modificadores de acesso em java e suas especificações. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Programação Orientada a Objetos em Java
  2. Perguntas da entrevista sobre Java
  3. O que é sincronização em Java?
  4. Autoboxing e Unboxing em Java
  5. Modificadores de acesso em C ++ (tipos)
  6. Guia surpreendente para modificar modificadores em c #
  7. Modificadores de acesso em PHP
  8. JRE vs JVM | As 8 principais diferenças com (infográficos)