Modificadores de acesso ( Para classes )


Olá

Vou falar um pouco sobre os 4 modificadores de acesso que existem no Java, são eles public, protected, private e default.

Apenas os modificadores public e default podem ser usados em classes.

Vamos lá

Exemplos de declarações:

public

  1. packpage teste;
  2. public class Pessoa(){
  3. //Algum código
  4. }

As classes public podem ser acessadas por qualquer classe em qualquer pacote.

Exemplo:

  1. packpage naoteste;
  2. import teste.Pessoa;
  3. public class Aluno extends Pessoa(){
  4. //Código
  5. }

Repare que a classe Aluno se encontra no pacote naoteste e está usando a classe Pessoa que se encontra no pacote teste, pacote diferente.

Qualquer classe, não importa que pacote esteja pode usar a classe Pessoa. Quando eu falo em usar a classe pode ser por meio de HERANÇA(É UM) que é implementada pela palavra extends, ou pode ser usada através de uma instancia da classe (TEM UM), que você cria uma instancia da classe que você quer usar.

Ex.

  1. packpage naoteste;
  2. import teste.Pessoa;
  3. public class Aluno(){
  4. Pessoa pessoa = new Pessoa();
  5. }

Declarando desse jeito eu estou dizendo que a classe aluno TEM UMA pessoa, eu posso utilizar todos os métodos de pessoa através da variável de instancia pessoa.

default

Exemplo de declaração

  1. packpage teste;
  2. class Pessoa(){}

Mais onde está a declaração do modificador default?

Quando você não declara um modificador, por padrão a classe recebe o modificador default. Ou seja essa classe Pessoa só pode ser usada por uma classe que esteja no mesmo pacote que ela.

Ex:

  1. packpage naoteste;
  2. import teste.Pessoa;
  3. public class Aluno extends Pessoa(){}

Quando você tentar compilar esse código, acontecerá um erro de compilação. Repare que eu não declarei um modificador explicitamente, então a classe Pessoa por padrão ficou com o modificador default, ou seja apenas classe que esteja no mesmo pacote poderá usar a classe Pessoa.

A classe Aluno está em um pacote diferente, a classe Pessoa se encontra no pacote “teste” e a classe aluno se encontra no pacote “naoteste”.

A classe Aluno só compilaria se a mesma estivesse no pacote teste que se encontra a classe Pessoa.

É isso que eu tenho pra falar sobre modificadores de acesso aplicado a classes

Até o próximo post =)

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *