Buscar

04 Aula Pacotes

Prévia do material em texto

Programação Orientada a Objetos
PACOTES
Organização do Java
 
Programação Orientada a Objetos
Pacotes
● À medida que aumenta o número de classes, aumenta a 
chance de coincidência de nomes;
● Precisamos separar as classes em espaços de nomes;
● Java possui o conceito de pacotes:
– Espaço de nome para evitar conflitos;
– Agrupamento de classes semelhantes;
– Maneira de construir bibliotecas de classes;
– Estabelecimento de políticas de acesso às classes
 
Programação Orientada a Objetos
Pacotes
● Os pacotes estão diretamente relacionados aos diretórios
● Um pacote indica em que diretório a Classe está armazenada
● O nome de um pacote é sempre em minúsculo 
(Java Code Conventions)
package meupacote;
 
Programação Orientada a Objetos
Pacotes
● Declaração do pacote:
– Primeira linha não comentada da classe
package meupacote;
public class MinhaClasse {
// implementação
}
 
Programação Orientada a Objetos
Pacotes
● Para usar Classes de outros pacotes, é preciso importá-las:
package novopacote;
import meupacote.MinhaClasse; 
public class NovaClasse {
MinhaClasse mc = new MinhaClasse();
}
 
Programação Orientada a Objetos
Pacotes
● Formas de importar:
– Importando uma única Classe de um pacote
● import meupacote.MinhaClasse;
– Importando todas as Classes de um pacote
● import meupacote.* 
– Usando o nome completo da Classe
● meupacote.MinhaClasse mc;
 
Programação Orientada a Objetos
Pacotes
● Para não haver conflito com ninguém, sugere-se usar seu domínio 
na Internet ao contrário:
http://ufg.inf.br
br.inf.ufg.meupacote
 
Programação Orientada a Objetos
Pacotes
● Maioria das JVMs utiliza pastas no sistema de arquivos do SO:
br.inf.ufg.meupacote.MinhaClassebr
inf
ufg
meupacote
 MinhaClasse.java
package br.inf.ufg.meupacote;
public class MinhaClasse {
// implementação
}
 MinhaClasse.class
 
Programação Orientada a Objetos
Pacotes
● Modificadores de Acesso
– public : todos podem acessar independente do pacote;
– protected : pode ser acessado por todas as classes do mesmo 
pacote e pelas que estendam(herança)
– package ou default: só podem ser acessados por classes do 
mesmo pacote
– private : só pode ser acessado pela própria classe
 
Programação Orientada a Objetos
Pacotes
Java possui vários pacotes com outros pacotes internos e 
várias classes já prontas para serem utilizadas.
 
Programação Orientada a Objetos
Pacotes
● No java podemos determinar dois grandes pacotes:
– O pacote java que possui as classes padrões para o 
funcionamento do programa – núcleo do java
– O pacote javax que fornece pacotes de extensão para as 
implementações do pacote java
 
Programação Orientada a Objetos
Pacotes
● Pacotes básicos do Java:
● java.lang : classes fundamentais - importado automaticamente
(Integer, Double, Byte, Math, String, System, Exception, Thread, etc)
● java.util: classes utilitárias
(Date, Array, Collection, List, Currency, Formatter, Random, Vector..)
● java.io: classes para entrada e saída
(FileReader, FileWriter, InputStream, OutputStream, ..)
● java.net: classes para uso em rede (TCP/IP)
● java.sql: classes para acesso a banco de dados via JDBC
● java.awt: interface gráfica universal nativa
● java.text: internacionalização, transformação e formatação de texto
● ...
 
Programação Orientada a Objetos
Pacotes
● Outros pacotes do Java:
● javax.swing : fornece componentes para interface gráfica
● javax.print: classes para serviço de impressão
● javax.net: classes para uso em rede (complementa a java.net)
● javax.sql: classes para acesso via JDBC (complementa a java.sql)
● javax.crypto: classes para serviços de criptografia
● ...
 
Programação Orientada a Objetos
Pacotes
● Exemplo:
– Pacote java.awt (Abstract Windowing Toolkit) possui 
classes necessárias para criar um ambiente gráfico API 
ligado fortemente a funções nativas do Sistema 
Operacional.
– Pacote javax.swing não é ligado à funções nativas do 
SO, trabalha de forma independente, com mais 
autonomia. Ele complementa o java.awt, logo é do 
javax.
 
Programação Orientada a Objetos
Pacotes
● As classes do pacote java.lang são importadas 
automaticamente;
● Não é necessário:
– import java.lang.String;
– import java.lang.Math;
– import java.lang.*;
 
Programação Orientada a Objetos
Pacotes
● É possível importar membros estáticos de uma classe (java 5)
– Antes:
/* ... */
r = Math.exp(x) + Math.log(y) – Math.sqrt(Math.pow(Math.PI, y));
– Depois:
import static java.lang.Math.*;
r = exp(x) + log(y) – sqrt(pow(PI, y));
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16

Continue navegando