Compreendendo o uso de pacotes, ou packages

Este artigo trata da construção de projetos Java, da organização de um conjunto de classes relacionadas em pacotes, das regras para denominação de pacotes, da distribuição de aplicações Java através de arquivos JAR.

Cenário: Este artigo trata da construção de projetos Java, da organização de um conjunto de classes relacionadas em pacotes, das regras para denominação de pacotes, da distribuição de aplicações Java através de arquivos JAR e da importação de uma ou mais classes de um pacote conhecido. É comum ao iniciarmos no desenvolvimento, devido a costumes da programação estruturada, criar todas as classes da nossa aplicação em um único pacote. No entanto esta não é a situação ideal. Boas técnicas de programação ditam que devemos organizar nossas classes em pacotes distintos e de acordo com as suas responsabilidades.

Em que situação o tema é útil: Este tema é útil a todo desenvolvedor que está dando os primeiros passos e ainda não compreendeu a importância da definição de pacotes em seus projetos. Com o uso de pacotes seu código ficará mais organizado, será mais fácil de manter, de ser compreendido por outros desenvolvedores e também de ser utilizado em outros projetos.

Para RICARTE (2001), no desenvolvimento de pequenas aplicações Java, pode ser viável manter o código em um mesmo diretório. Entretanto, para aplicações maiores, colocar todos os arquivos em um mesmo local, sem organização, pode aumentar a possibilidade de colisão de classes (classes com o mesmo nome no mesmo escopo) e dificultar a localização de um determinado código.

Em Java, a solução para esses problemas está na organização de classes em pacotes. Um pacote ou package na tecnologia Java nada mais é do que um conjunto de classes localizadas na mesma estrutura hierárquica de diretórios. Usualmente, são colocadas em um package classes relacionadas, construídas com um propósito comum para promover a reutilização de código; assim, sobre certos aspectos, os packages reproduzem a ideia das bibliotecas de código (libraries e units), de outras linguagens de programação.

Na programação Java a reutilização de código pode ser apoiada pela construção de pacotes de classes com métodos destinados a solucionar tarefas bastante corriqueiras, como por exemplo, validação de CPF e CNPJ, operações com data, manipulação de vetores, cálculos matemáticos como médias e percentuais, entre outras.

O próprio código base da tecnologia Java está todo estruturado em pacotes, como pode ser observado na especificação da API (Application Programming Interface, ou Interface de Programação de Aplicações) da plataforma Java SE, apresentada parcialmente na Tabela 1.

Tabela 1. Pacotes mais comuns da API da plataforma Java, Standard Edition.

Assim, no desenvolvimento de novos sistemas, os programadores Java podem escolher entre as inúmeras classes da API do Java e classes disponibilizadas em pacotes implementadas por terceiros, de modo que a quantidade de código realmente novo a ser implementado seja minimizada, acelerando o processo de desenvolvimento de aplicações (RAD – Rapid Application Development).

Neste artigo pretende-se demonstrar como organizar um conjunto de classes relacionadas em pacotes, como realizar a distribuição dos pacotes através de um arquivo JAR (Java ARchive) e como implementar a importação de uma ou mais classes de um pacote conhecido.

Os estudos de casos que serão apresentados foram implementados usando o ambiente de desenvolvimento NetBeans e estão estruturados, como mostra a Figura 1, em dois projetos denominados de “Pacotes” e “UsandoPacotes”. No primeiro projeto (Pacotes), as classes Matematica, FuncaoMatematica e Vetor foram organizadas em dois pacotes: pr.com.profomero.pacoteum e pr.com.profomero.pacotedois. Já no segundo projeto (UsandoPacotes), as aplicações Exemplo1, Exemplo2 e Exemplo3 utilizam as classes importadas dos pacotes definidos no primeiro projeto.

Figura 1. Organização dos Projetos “Pacotes” e “UsandoPacotes”.

Criando pacotes

Para indicar que uma classe Java pertence a um determinado pacote, a primeira linha de código deve ser a declaração de pacote implementada através da diretiva package, seguida do nome do pacote, obedecendo a seguinte sintaxe:

package nomedopacote;

Essencialmente, uma classe denominada MinhaClasse que pertence a um pacote nomedopacote tem um “nome completo” que é nomedopacote.MinhaClasse. Assim, se outra aplicação tiver uma classe de mesmo nome, não haverá conflitos, pois classes em pacotes diferentes têm nomes completos distintos."

[...] continue lendo...

Artigos relacionados