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
- packpage teste;
- public class Pessoa(){
- //Algum código
- }
As classes public podem ser acessadas por qualquer classe em qualquer pacote.
Exemplo:
- packpage naoteste;
- import teste.Pessoa;
- public class Aluno extends Pessoa(){
- //Código
- }
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.
- packpage naoteste;
- import teste.Pessoa;
- public class Aluno(){
- Pessoa pessoa = new Pessoa();
- }
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
- packpage teste;
- 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:
- packpage naoteste;
- import teste.Pessoa;
- 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 =)