- Pacote Java
- Exemplo de pacote
- Acessando pacote
- Subpacote
- Enviando arquivo de classe para outro diretório
- -switch de caminho de classe
- 4 maneiras de carregar o arquivo de classe ou arquivo jar
- Como colocar duas classes públicas em um pacote
- Importação estática
- Classe de pacote
A pacote java é um grupo de tipos semelhantes de classes, interfaces e subpacotes.
O pacote em java pode ser categorizado em duas formas: pacote integrado e pacote definido pelo usuário.
Existem muitos pacotes integrados, como java, lang, awt, javax, swing, net, io, util, sql etc.
Aqui, teremos o aprendizado detalhado de como criar e usar pacotes definidos pelo usuário.
java converte int para string
Vantagem do pacote Java
1) O pacote Java é usado para categorizar as classes e interfaces para que possam ser facilmente mantidas.
2) O pacote Java fornece proteção de acesso.
3) O pacote Java remove a colisão de nomes.
Exemplo simples de pacote java
O palavra-chave do pacote é usado para criar um pacote em java.
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
Como compilar o pacote java
Se você não estiver usando nenhum IDE, você precisa seguir o sintaxe dado abaixo:
javac -d directory javafilename
Para exemplo
javac -d . Simple.java
A opção -d especifica o destino onde colocar o arquivo de classe gerado. Você pode usar qualquer nome de diretório como /home (no caso do Linux), d:/abc (no caso do Windows) etc. Se quiser manter o pacote dentro do mesmo diretório, você pode usar . (ponto).
Como executar o programa de pacote java
Você precisa usar um nome totalmente qualificado, por exemplo. mypack.Simple etc para executar a classe.
Compilar: javac -d. Simples.java |
Para correr: java meupack.Simple |
Output:Welcome to package
O -d é uma opção que informa ao compilador onde colocar o arquivo de classe, ou seja, representa o destino. O . representa a pasta atual. |
Como acessar o pacote de outro pacote?
Existem três maneiras de acessar o pacote fora do pacote.
- pacote de importação.*;
- importar pacote.classname;
- nome totalmente qualificado.
1) Usando nome do pacote.*
Se você usar package.* então todas as classes e interfaces deste pacote estarão acessíveis, mas não os subpacotes.
A palavra-chave import é usada para tornar as classes e interface de outro pacote acessíveis ao pacote atual.
Exemplo de pacote que importa o packagename.*
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
2) Usando packagename.classname
Se você importar package.classname então apenas a classe declarada deste pacote estará acessível.
Exemplo de pacote por importação package.classname
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.A; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
3) Usando nome totalmente qualificado
Se você usar um nome totalmente qualificado, apenas a classe declarada deste pacote estará acessível. Agora não há necessidade de importar. Mas você precisa usar um nome totalmente qualificado sempre que acessar a classe ou interface.
Geralmente é usado quando dois pacotes têm o mesmo nome de classe, por exemplo. Os pacotes java.util e java.sql contêm a classe Date.
Exemplo de pacote por importação de nome totalmente qualificado
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; class B{ public static void main(String args[]){ pack.A obj = new pack.A();//using fully qualified name obj.msg(); } }
Output:Hello
Nota: Se você importar um pacote, os subpacotes não serão importados.
Se você importar um pacote, todas as classes e interfaces desse pacote serão importadas, excluindo as classes e interfaces dos subpacotes. Portanto, você também precisa importar o subpacote.
Nota: A sequência do programa deve ser pacote, depois importação e depois classe.
Subpacote em java
O pacote dentro do pacote é chamado de subpacote . Deveria ser criado para categorizar ainda mais o pacote .
Vejamos um exemplo: a Sun Microsystem definiu um pacote chamado java que contém muitas classes como System, String, Reader, Writer, Socket etc. As classes Reader e Writer são para operação de entrada/saída, as classes Socket e ServerSocket são para rede, etc. Portanto, a Sun subcategorizou o pacote java em subpacotes como lang, net, io etc. e colocou as classes relacionadas à entrada/saída no pacote io, as classes Server e ServerSocket nos pacotes net e assim por diante.
O padrão de definição de pacote é domain.company.package, por exemplo. com.javatpoint.bean ou org.sssit.dao.
Exemplo de subpacote
package com.javatpoint.core; class Simple{ public static void main(String args[]){ System.out.println('Hello subpackage'); } }
Compilar: javac -d. Simples.java |
Para correr: java com.javatpoint.core.Simple |
Output:Hello subpackage
Como enviar o arquivo de classe para outro diretório ou unidade?
Existe um cenário, quero colocar o arquivo de classe do arquivo de origem A.java na pasta de classes da unidade c:. Por exemplo:
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
Compilar:
e:fontes> javac -d c:classes Simples.java
Para correr:
Para executar este programa a partir do diretório e:source, você precisa definir o caminho de classe do diretório onde o arquivo de classe reside. |
e:fontes> set classpath=c:classes;.; |
e:fontes> java meupack.Simple |
Outra maneira de executar este programa pela opção -classpath de java:
A opção -classpath pode ser usada com javac e ferramenta java.
Para executar este programa a partir do diretório e:source, você pode usar a opção -classpath de java que informa onde procurar o arquivo de classe. Por exemplo:
uma classe abstrata pode ter um construtor
e:fontes> java -classpath c:classes meupack.Simple
Output:Welcome to package
Maneiras de carregar os arquivos de classe ou arquivos jar
Existem duas maneiras de carregar os arquivos de classe temporários e permanentes. |
- Temporário
- Configurando o classpath no prompt de comando
- Por opção -classpath
- Permanente
- Definindo o classpath nas variáveis de ambiente
- Criando o arquivo jar, que contém todos os arquivos de classe, e copiando o arquivo jar na pasta jre/lib/ext.
Regra: Só pode haver uma classe pública em um arquivo fonte java e ela deve ser salva com o nome da classe pública.
//save as C.java otherwise Compilte Time Error class A{} class B{} public class C{}
Como colocar duas classes públicas em um pacote?
Se você quiser colocar duas classes públicas em um pacote, tenha dois arquivos fonte java contendo uma classe pública, mas mantenha o mesmo nome do pacote. Por exemplo: |
//save as A.java package javatpoint; public class A{}
//save as B.java package javatpoint; public class B{}
Qual é o recurso de importação estática do Java5?
Clique no recurso Importação estática do Java5. |
E quanto à classe de pacote?
Clique para classe Pacote |