Os modificadores de acesso definem o escopo de visibilidade da classe, ou seja, servem para restringir ou permitir o acesso a uma classe. 
Acesso= Visiabilidade



Acesso padrão ou default: Não possui modificador.
Esse é o chamado acesso em nível de pacote, pois classes com esse tipo de acesso só podem ser vistas (acessadas) por classes de dentro do mesmo pacote em que estão declaradas.
Por exemplo, criando duas classes com acesso padrão e as colocarmos em pacotes diferentes, uma não poderá enxergar a outra; ou seja, uma classe não poderá herdar ou criar instâncias da outra classe, ou até mesmo declarar um retorno ou uma variável com o tipo da outra classe.

Acesso public: Acesso público, permitindo que todas as classes de todos os pacotes a vejam e acessem.

Por exemplo, se duas classes possuem acesso público, uma poderá criar instâncias, herdar, declarar uma variável ou um retorno com o tipo da outra classe.

Exemplo de acessos default e público:


package bebida;
public class Bebida_alcoolica {  // acesso público
/* erro de compilação Bebida_alcoolica não tem acesso a classe Caipirinha porque estão em pacotes diferentes e Caipirinha possui acesso default */
Caipirinha c = new Caipirinha();
}

package bebida.brasil;
import bebida.Bebida_alcoolica;
class Caipirinha {  // acesso default
/* possui acesso a classe Bebida_alcoolica, mesmo em pacotes diferentes, porque Bebida_alcoolica possui acesso público */
Bebida_alcoolica b = new Bebida_alcoolica();
}


Classe Private: Métodos e variáveis marcadas como private só podem ser acessados pela classe na qual foram declarados;  outras classes não acessam membros privados nem por herança, nem por instância.

Membros protected: Pode ser acessado por classes do mesmo pacote por meio da instanciação, e acessado por classes de outros pacotes através de herança.
Obs: membros padrão e protected diferem apenas quando se trata de subclasses.

Enfim, protected acessa mesma classe, mesmo pacote por subclasse e não subclasse e pacote diferente pela subclasse. 


Deixe um comentário