1 / 13

Programação Orientada a Objetos*

Programação Orientada a Objetos*. Pacotes Prof. Isabel Cafezeiro isabel@dcc.ic.uff.br http://www.dcc.ic.uff.br/~isabel *Baseado no livro Introdução à Programação Orientada a Objetos usando JAVA – Rafael Santos – Editora Campus – Série SBC. Pacotes.

randy
Download Presentation

Programação Orientada a Objetos*

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ProgramaçãoOrientada a Objetos* Pacotes Prof. Isabel Cafezeiro isabel@dcc.ic.uff.br http://www.dcc.ic.uff.br/~isabel *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 classee 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 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/2006 15:28 <DIR> . 20/06/2006 15:26 <DIR> .. 19/06/2006 16:25 2.815 DataHora.java 19/06/2006 16:18 1.339 Data.java 19/06/2006 16:25 1.377 Hora.java 3 arquivo(s) 5.531 bytes 2 pasta(s) 10.900.996.096 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.

More Related