A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação Orientada a Objetos*

Apresentações semelhantes


Apresentação em tema: "Programação Orientada a Objetos*"— Transcrição da apresentação:

1 Programação Orientada a Objetos*
Pacotes Prof. Isabel Cafezeiro *Baseado no livro Introdução à Programação Orientada a Objetos usando JAVA – Rafael Santos – Editora Campus – Série SBC

2 Pacotes Aplicações em java envolvem múltiplas classes
Classes fornecedoras de serviços Classe de aplicação Classes com propósito relacionado devem ser agrupadas Pacotes = estrutura de diretório + .java (com a declaração do pacote) + .class + cláusula de importação na classe usuária

3 Pacotes Pacotes e Modificadores de acesso private + restritivo
protected ausente (default) public restritivo

4 Pacotes Um nome declarado com o modificador ...
... private: só é acessível na própria classe; ... protected: só é acessível na própria classe e subclasses; ... ausente (default): só é acessível nas classes do pacote; ... public: acesso irrestrito. Classe sem declaração de pacote: pertencem a um pacote padrão. Até o momento vínhamos declarando classes e construtores sem modificadores: visíveis no pacote padrão !!!

5 Pacotes Exemplo: Data, Hora, DataHora
serviço data serviço hora combina serviços data e hora Pacote DataHora Criar diretório DataHora (mesmo nome do pacote) contendo todas as classes do pacote O diretório deve ser criado no caminho de procura de classes java Hierarquia em muitos níveis, refletindo o nome do domínio da instituição em ordem reversa: UFF.graduaçãoComputação.POO nome do pacote UFF\graduaçãoComputação\POO diretório do pacote

6 Pacotes Declaração do pacote DataHora: Primeira declaração da classe;
package DataHora; public class Data { byte dia; byte mês; short ano; public Data(byte d,byte m,short a) { dia = d; mês = m; ano = a; } public String toString() { return dia+"/"+mês+"/"+ano; } } // fim da classe Data DataHora/Data.java Declaração do pacote DataHora: Primeira declaração da classe; Colocar a classe Data dentro do diretório DataHora; Public: qq outra classe (do pacote ou não) pode usar esta classe; Construtor Public: caso contrário não seria possível criar instâncias desta classe aplicando o construtor; Campos sem modificador: visíveis em todo pacote.

7 Pacotes package DataHora; public class Hora { byte hora; byte minuto;
byte segundo; public Hora(byte h,byte m,byte s) { hora = h; minuto = m; segundo = s; } public String toString() { return hora+":"+minuto+":"+segundo; } // fim da classe Hora DataHora/Hora.java

8 Pacotes package DataHora; public class DataHora { Data estaData;
Hora estaHora; public DataHora(byte h,byte min,byte s,byte d,byte m,short a) { estaData = new Data(d,m,a); estaHora = new Hora(h,min,s); } public String toString() { .... } } // fim da classe DataHora DataHora/DataHora.java Não há conflito: pacote e classe com o mesmo nome. Usa diretamente as classes do pacote.

9 Pacotes Usa o pacote DataHora: não precisa estar no mesmo diretório
import DataHora.*; class DemoDataHora { public static void main(String[] argumentos){ Hora meiodia = new Hora((byte)12,(byte)00,(byte)00); Data hoje = new Data((byte)11,(byte)5,(short)2001); DataHora agora = new DataHora((byte)22,(byte)35,(byte)00, (byte)11,(byte)5,(short)2001); System.out.println(meiodia); System.out.println(hoje); System.out.println(agora); .... } // fim do método main } // fim da classe DemoDataHora DemoDataHora.java Importa todas as classes do pacote

10 Pacotes Diretório DataHora, contendo os códigos java:
F:\AULAS\POO\aula13\DataHora>dir O volume na unidade F é isabel O número de série do volume é 043F-09CB Pasta de F:\AULAS\POO\aula13\DataHora 20/06/ : <DIR> 20/06/ : <DIR> 19/06/ : DataHora.java 19/06/ : Data.java 19/06/ : Hora.java 3 arquivo(s) bytes 2 pasta(s) bytes disponíveis

11 Pacotes A compilação das classes do pacote:
F:\AULAS\POO\aula13\DataHora>cd .. F:\AULAS\POO\aula13>javac DataHora\Data.java F:\AULAS\POO\aula13>javac DataHora\Hora.java F:\AULAS\POO\aula13>javac DataHora\DataHora.java F:\AULAS\POO\aula13>

12 Pacotes A compilação da classe usuária do pacote:
A execução da classe usuária do pacote: F:\AULAS\POO\aula13>javac DemoDataHora.java F:\AULAS\POO\aula13> F:\AULAS\POO\aula13>java DemoDataHora 12:0:0 11/5/2001 22:35:0 de 11 de Maio de 2001 F:\AULAS\POO\aula13>

13 Pacotes Exercício: Criar pacotes: figuras Geométricas, classes do estacionamento; Colocar aplicações em diretórios diferentes; Testa o uso dos pacotes.


Carregar ppt "Programação Orientada a Objetos*"

Apresentações semelhantes


Anúncios Google