Pacotes em Java e como usá-los?
Publicados: 2022-04-18Os pacotes em Java são usados para agrupar classes, interfaces e subpacotes relacionados. Usamos pacotes Java para evitar conflitos de nomenclatura, pois pode haver duas classes com o mesmo nome em dois pacotes diferentes. Além disso, pesquisar, localizar e usar interfaces, classes, anotações e enumerações torna-se mais fácil com os pacotes Java.
Usar a linguagem de programação Java para escrever software envolve várias classes individuais e só faz sentido organizar classes e interfaces relacionadas em pacotes. De certa forma, você pode comparar os pacotes Java com as pastas em um computador que usamos para organizar vários arquivos e manter nosso trabalho organizado.
Este guia discutirá os diferentes tipos de pacotes em Java e como usá-los.
Tipos de pacotes em Java
Os pacotes em Java são divididos em categorias com base se o usuário os define ou não. Os dois tipos de pacotes Java são:
- Pacotes integrados
- Pacotes definidos pelo usuário
1. Pacotes integrados
Pacotes Java predefinidos ou integrados vêm como parte do Java Development Kit (JDK) e consistem em muitas classes e interfaces predefinidas que fazem parte das APIs Java. Alguns dos pacotes internos comumente usados em Java são os seguintes:
- java.io: Contém classes para suportar operações de entrada/saída.
- java.lang: Este pacote embutido é importado automaticamente e contém classes de suporte ao idioma.
- java.util: Contém classes utilitárias para implementar estruturas de dados como dicionário e suporte, lista encadeada, operações de data e hora, etc.
- java.net: Contém classes que suportam operações de rede.
Temos que usar a instrução de importação para importar qualquer pacote Java embutido e usar as classes que ela contém.
Um exemplo simples para mostrar o uso da classe ArrayList do pacote Java.util é o seguinte:
Exemplo de pacote;
import java.util.ArrayList;
class BuiltInPackage {
public static void main(String[] args) {
ArrayList<Integer> minhaLista = new ArrayList<>(3);
minhaLista.add(3);
minhaLista.add(2);
minhaLista.add(1);
System.out.println(“A lista tem os elementos: ” + minhaLista);
}
}
Resultado:
A lista tem os elementos: [3, 2, 1]
No exemplo acima de Java.util.ArrayList, Java é o pacote de nível superior, util é um subpacote e ArrayList é uma classe presente no subpacote util.
Importando pacotes em Java
Conforme mostrado no exemplo anterior, Java tem uma instrução de importação que nos permite importar um pacote inteiro ou usar apenas determinadas interfaces e classes definidas no pacote.
A sintaxe geral da instrução de importação é:
- importar package.name.ClassName; //Importa apenas uma determinada classe
- import package.name.* //Importa todo o pacote
Por exemplo, importe java.util.Date; importa apenas a classe Date enquanto import java.io.*; importa tudo o que o pacote java.io contém.
No entanto, a instrução import é opcional em Java e, se quisermos usar a classe ou interface de um determinado pacote, podemos usar seu nome totalmente qualificado da seguinte maneira:
class MyClass implementa java.util.Date {
//corpo
}
2. Pacotes definidos pelo usuário
Como evidenciado pelo nome, os pacotes definidos pelo usuário são criados pelo usuário para agrupar classes, interfaces e subpacotes.
Criando um pacote definido pelo usuário
Para criar um pacote definido pelo usuário em Java, escolheremos um nome para nosso pacote e usaremos o comando package como a instrução inicial no arquivo de origem Java. Como exemplo, criaremos um pacote chamado ExamplePackage usando a seguinte instrução:
pacote ExemploPacote;
A instrução package especifica o pacote ao qual as classes que definimos pertencerão. Se não usarmos a instrução package, os nomes das classes serão colocados no pacote padrão em Java que não tem nome.
Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Criando uma classe no pacote Java
Depois de criar o pacote, o próximo passo é criar uma classe dentro do pacote. Para isso, vamos declarar o nome do pacote na primeira instrução do programa, seguido da inclusão da classe como parte do pacote.
Dado abaixo é um programa simples para mostrar como criar uma classe em um pacote Java. No exemplo dado, criamos uma classe Calculate dentro do pacote ExamplePackage.
pacote ExemploPacote;
classe pública Calcular {
public int add(int p, int q){
retorna p+q;
}
public static void main(String args[]){
Calcular obj = new Calcular();
System.out.println(obj.add(70, 12));
}
}
Saída: 82
Java armazena pacotes em diretórios do sistema de arquivos. Assim, o programa acima será salvo em um arquivo como Calculate.java e armazenado no diretório denominado ExamplePackage. Quando o arquivo for compilado, o Java criará um arquivo '.class' e o armazenará no diretório ExamplePackage.
Agora, você pode usar o pacote ExamplePackage em outro programa. Veja como:
import ExamplePackage.Calculate;
demonstração de classe pública{
public static void main(String args[]){
Calcular obj = new Calcular();
System.out.println(obj.add(200, 523));
}
}
Saída: 723
No exemplo acima, importamos o pacote ExamplePackage para usar a classe Calculate. Importar o pacote como ExamplePackage.Calculate importa apenas a classe Calculate. No entanto, se você tiver mais de uma classe dentro do pacote ExamplePackage, poderá usar todas as classes do pacote usando a seguinte instrução de importação:
import ExamplePackage.*;
Criando uma classe dentro de um pacote enquanto importa outro pacote
Para criar uma classe dentro de um pacote enquanto importa outro pacote, começaremos declarando o nome do pacote e importando o outro pacote. O exemplo a seguir demonstra o mesmo:
pacote OutroPacote; //Declarando um pacote
import ExamplePackage.Calculate; //importando um pacote
Exemplo de classe pública{
public static void main(String args[]){
Calcular obj = new Calcular();
System.out.println(obj.add(300, 700));
}
}
Saída: 1000
No exemplo acima, declaramos o pacote OtherPackage, importamos a classe Calculate do pacote ExamplePackage e, em seguida, criamos a classe Example.
Importando uma classe usando um nome totalmente qualificado
Podemos evitar a instrução de importação usando um nome totalmente qualificado. O uso de um nome totalmente qualificado torna acessível apenas a classe declarada do pacote. Mas precisamos usar um nome totalmente qualificado toda vez que acessarmos a classe ou interface. Importar uma classe usando um nome totalmente qualificado é útil quando dois pacotes têm o mesmo nome de classe.
O exemplo a seguir ilustra o mesmo:
1. Calcular.java
pacote ExemploPacote;
classe pública Calcular {
public int add(int x, int y){
retorna x+y;
}
public static void main(String args[]){
Calcular obj = new Calcular();
System.out.println(obj.add(20, 50));
}
}
2. Demo.java
pacote OutroPacote; //Declarando um pacote
demonstração de classe pública{
public static void main(String args[]){
ExamplePackage.Calculate obj = new ExamplePackage.Calculate(); //Usando nome totalmente qualificado em vez de importação
System.out.println(obj.add(200, 100));
}
}
Saída: 300
No exemplo abaixo, usamos o nome totalmente qualificado ExamplePackage.Calculate para criar o objeto dele em vez de importar o pacote.
3. Subpacotes em Java
Agora que temos uma ideia sobre os pacotes Java e como criá-los, vamos entender o conceito de subpacotes em Java.
Um subpacote é um pacote dentro de outro pacote e é usado para categorizar ainda mais o pacote. Em outras palavras, se criarmos um pacote multiplique dentro do pacote ExamplePackage, então multiplicar é o subpacote. Assim, se quisermos criar uma classe dentro deste sub-pacote multiplique, então o sub-pacote deve ter uma declaração no início.
O programa a seguir demonstra o conceito de um subpacote Java:
pacote ExemploPacote.multiply; //Declarando o sub-pacote
classe pública Multiplicação {
int produto(int p, int q){
retorna p*q;
}
}
Agora, se quisermos usar a classe Multiplication, podemos:
- Importe-o usando a instrução import ExamplePackage.multiply; ou
- use um nome totalmente qualificado como ExamplePackage.multiply.Multiplication obj = new ExamplePackage.multiply.Multiplication();
Caminho a seguir
Os pacotes em Java podem ser pacotes integrados ou definidos pelo usuário e são essenciais para um melhor acesso e gerenciamento de código. O conceito de pacotes Java é crucial para qualquer pessoa na área de desenvolvimento de software.
A Certificação PG vinculada ao trabalho do upGrad em Engenharia de Software é um programa on-line de 5 meses que pode ajudá-lo a dominar as habilidades de programação e se preparar para funções de software. O programa se concentra em habilidades essenciais, como Java, JavaScript, CSS3, HTML5, etc., e é especialmente projetado para calouros que desejam aprender a programar.
Destaques do programa:
- Especialização em MERN/Cloud-Native
- Mais de 500 horas de conteúdo
- Mais de 50 sessões ao vivo
- Mais de 350 horas de treinamento prático
- Cinco projetos da indústria
- Suporte de aprendizado de 360 graus
- Networking com especialistas do setor
Inscrever-se hoje e aprenda com os melhores!
O que é um pacote e seus tipos?
Um pacote é uma coleção de entidades Java relacionadas, como classes, subclasses, interfaces, anotações e enumerações. Ele também pode conter subpacotes. Os pacotes em Java são de dois tipos - pacotes internos e pacotes definidos pelo usuário.
Por que usamos pacotes em Java?
Usamos pacotes em Java para evitar conflitos de nomenclatura, facilitar a busca, localização e uso de classes, interfaces, anotações e enumerações, controle de acesso e encapsulamento de dados.
O que é acesso em nível de pacote em Java?
O acesso ao nível do pacote em Java é o nível de acesso padrão fornecido pelo Java caso nenhum modificador de acesso seja especificado. A função dos modificadores de acesso é restringir a acessibilidade a uma classe, variável ou método ao qual se aplica.