Neste capítulo, vamos abordar como organizar projetos Java de forma profissional, utilizando pacotes (packages) e modificadores de acesso para estruturar bem o código e garantir um bom encapsulamento.
Imagine seu computador. Você não joga todos os seus documentos, fotos e músicas em uma única pasta, certo? Você os organiza em pastas e subpastas para encontrá-los facilmente e separar o que é de trabalho do que é pessoal.
Em Java, Pacotes funcionam exatamente como pastas para suas classes. Eles são um mecanismo para organizar classes, interfaces e subpacotes relacionados, agrupando-os por funcionalidade, domínio, responsabilidade ou qualquer critério lógico.
Utils em vários pacotes diferentes sem problemas) e controlam a visibilidade de classes, atributos e métodos.Motivos:
br.com.empresa.erp.cliente.Pessoa e br.com.empresa.crm.vendas.Pessoa podem coexistir.A declaração de um pacote deve ser a primeira linha de um arquivo .java (exceto por comentários e a declaração de codificação de caracteres).
// Declaração do pacote para a classe Aluno
package br.com.escola.modelo; // Convenção de domínio invertido
public class Aluno {
public String nome; // Atributo público (por enquanto, para simplificar o exemplo)
public int matricula;
public Aluno(String nome, int matricula) {
this.nome = nome;
this.matricula = matricula;
}
public void exibirDados() {
System.out.println("Aluno: " + nome + ", Matrícula: " + matricula);
}
}
seu_projeto/
└── src/ (Pasta onde fica o código fonte)
└── br/
└── com/
└── minhaempresa/
└── meuprojeto/
├── modelo/ (Classes de dados, entidades)
│ └── Aluno.java
│ └── Professor.java
├── servico/ (Classes com lógica de negócio)
│ └── AlunoService.java
│ └── CalculadoraService.java
├── util/ (Classes de utilidades gerais)
│ └── FormatadorDatas.java
└── app/ (Classes de inicialização/execução)
└── Main.java
Para usar uma classe que está em um pacote diferente, você precisa "importá-la". A declaração import informa ao compilador Java onde encontrar a definição da classe.