Organização das classes e uso de packages

Java permite organizar as classes mediante agrupamentos ou packages.

Por Victorino Blanco González


Publicado em: 18/1/07
Valorize este artigo:
Efetivamente necessitaremos organizar nossas classes em algum momento porque nosso desenvolvimento pode ir crescendo, e ter um acúmulo de classes todas juntas em um diretório, sem nenhum tipo de organização física nem lógica, não nos ajudará muito.

Java nos permite com os "Packages" evitar esta situação de um modo bastante elegante e ordenado. Um "Package" é basicamente um agrupamento de classe, vemos por exemplo, que a versão 1.2 de Java inclui um total de 59 "Packages" para organizar todo seu API.

Qualquer grupo de classes pode se organizar dentro de um "package" porém, evidentemente o mais normal é que você organize as suas classes por algum motivo. As classes costumam se organizar segundo a relação entre elas. Por exemplo, se tivéssemos um grupo de classes que permitissem fazer uma ordenação de elementos em um array poderíamos organiza-las deste modo:

Quicksort.class; // Classe para ordenar arrays com o método quicksort
Bolha.class; // Classe para ordenar arrays com o método da bolha
Selecao.class; // Classe para ordenar arrays com o método de seleção
Insercao.class; // Classe para ordenar arrays com o método de inserção direta

/* Podemos englobar estas classes em um package visto que todas estão relacionadas em sua obrigação. Criaremos portanto o "package ordenações" para que possamos acessa-las deste modo: */

ordenacao.Quicksort.class; // Exemplo acesso a quicksort no package ordenação

/* Igualmente poderíamos ter também classes para a busca de um elemento em um array em tal caso repetiríamos o processo e por exemplo, teríamos o "package tratamentoArrays" deste modo: */

tratamentoArrays.ordenacao.Quicksort.class; // Exemplo acesso a quicksort dentro do // package ordenacao que por sua vez está // dentro do package tratamentoArrays.


O uso de "Packages" não só nos permite organizar nossas classes, como também nos permite diferenciar classes que sendo distintas tenham que ter o mesmo nome, ou seja, ajuda a Java com a resolução de nomes.

Também como vimos por alto anteriormente nos permite certas normas para controlar acesso a classes.

Vejamos agora como utilizar os "packages" para nossas classes. O primeiro que temos que ter em conta é que todas as classes que vão pertencer a um mesmo "package" têm que estar em um mesmo diretório que deve coincidir em nome com o nome do "package". Vemos que portanto, o nome completo de uma classe de um "package" equivale a sua rota desde o diretório que tomemos de base para nossas classes.

O diretório de base para nossas classes é o definido pela variável de ambiente CLASSPATH que introduzimos no segundo capítulo deste manual. Vejamos o exemplo:

tratamentoArrays.ordenacao.Quicksort.class
/* Equivale ao acesso a classe que se encontra no diretorio:
$CLASSPATH/tratamentoArrays/ordenacao/Quicksort.class */


O convênio de nomes de Java estabelece também que os nomes dos "packages" comecem por minúsculas.

Em segundo lugar para utilizar os "packages" em nossas classes temos que incluir no início do arquivo da classe (antes de qualquer outra sentença) a linha:

Package nomeDoPackage;

Por último vejamos a sentença "import". "import" permite importar um "package" a nossa classe Java. Isto nos permite acessar (no caso de que sejam acessíveis) sem usar todo o nome do "package" a qualquer classe dentro dele. Vejamos no seguinte exemplo:

Import tratamentoArrays.ordenacao.*; //Importamos todas as classes
//do "Package" de ordenação de
//arrays que tínhamos organizado.

/*tiramos linhas de código em Java até que... */

Quicksort arrayQuick= new Quicksort(); //... Em qualquer momento de nossa classe // podemos fazer uso da classe Quicksort sem
// utilizar toda a rota do package.


Também há que ter em conta que importando um "package" não importamos todos seus "subpackages" e sim somente todas as classes desse "package". Também podemos simplesmente importar somente uma classe dentro desse "package" colocando ao invés de um asterisco o nome da classe a importar.

Para acabar com este ponto queria fazer mais um comentário sobre API de Java. Já disse que as classes do API de Java estão organizadas em "packages" segundo sua função. Existem "packages" preparados para acometer as mais variadas tarefas. É um dever do leitor se informar de que "packages" lhe interessam em seu desenvolvimento e do funcionamento das classes incluídas nestes. Nós veremos certos "packages" de uso habitual durante o manual.

Como já foi comentado, em Java não se começa desde zero, temos um conjunto de classes que podemos incluir em nosso programa sem a necessidade de importar nenhum "package". Essas classes são as que pertencem ao "package" Java.lang. este "package" inclui as classes básicas de Java como por exemplo a classe "Array" que utilizaremos muito habitualmente.






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato