Universidade Católica de Angola Prática de laboratório Fundamentos de Programação II Frei Joaquim José Hangalo.

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

I/O Carlos Bazilio Depto de Ciência e Tecnologia
ESTRUTURA DE DADOS LES.
Classes C++ Class nome da classe { private: membros privados
Listas encadeadas Prof. Rosana Palazon.
Listas duplamente encadeadas
Interação entre objetos
List templates Vamos considerar a lista ligada (singly linked list) O objecto da classe slink O objecto da classe slink O objecto da classe slink NULL.
Padrão de Projeto Iterator
INE 5384 Estruturas de Dados Prof a. Patrícia Vilain
Pesquisa em Memória Primária
Pesquisa em Memória Primária
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Walfredo Cirne walfredo.dsc.ufpb.br
Erros A Evitar Redundância de Programação public void insere( Priorizavel obj ) throws listaVaziaException; Lançamento de exceções.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Orientação a Objetos Classes
Integração entre objetos
Slides: Prof. João Fabro UTFPR - Curitiba
Capítulo 9 Herança 1.
1 Aula 7 Herança. 2003/2004 Programação Orientada para Objectos 2 Conceitos fundamentais: Herança Polimorfismo Ligação dinâmica.
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Mapeamento Objeto-Relacional Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
CRIANDO OBJETOS EM JAVA
Prof.: Bruno Rafael de Oliveira Rodrigues
O Mecanismo de Threads em Java 2. Criar uma classe herdeira da super classe Thread public class minhaThread extends Thread{ public class minhaThread extends.
Departamento de Estatística e Informática
Classes Revisando: –Forma de implementação de estruturas específicas –Atributos (grupos de dados) –Métodos (conjuntos de procedimentos)
Pesquisa em Memória Primária
JAVA Orientação a Objetos
Denise Guliato Faculdade de Computação – UFU
Paradigmas da Programação – Semestre 1– Aula 5 Lab3
Implementação de FILAS com Alocação Dinâmica
Hashing - Espalhamento
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Introdução à Programação Orientada a Objetos com Java
Programa Expresso de Capacitação Módulo J2ME Aula 5 – Record Management System.
Tipos Abstratos de Dados
Os métodos equals() e hashCode()
Orientação a Objetos e Java Graduação em Ciência da Computação
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Pilhas Profa. Nádia Félix.
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Associação entre classes  Um objeto é a representação de uma entidade do mundo real 
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Construtores e Destrutores
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
POO - I PROF.: JEAN CARLO MENDES
JAVA – Fila ATAI.
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Exceções.
Revisão Mini-Prova 1 Monitoria IP/CC (~if669).
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Estruturas de Dados Dinâmicas IF672 - Algoritmos e Estruturas de Dados.
Laboratório de Programação II Método main Dados e Métodos de Classes.
Curso Básico de Android
Implementação Orientada a Objetos – Aula 07 Agregação e composição de objetos Prof. Danielle Martin Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Capítulo 4. Conjuntos  Introdução  Principais operações de conjuntos  Principais interfaces de conjuntos  A interface Collection  A interface Iterator.
INTERAÇÃO ENTRE OBJETOS Dilvan Moreira (baseado no livro Prog. Orientada a Objetos em Java)
Minicurso Java Básico Ruddá Beltrão | Cristian Costa.
Laboratório de Computação Aula 05 – Array Prof. Fábio Dias
IDENTIFICAÇÃO DOS RELACIONAMENTOS Nesta atividade devem ser definidos os relacionamentos entre as classes Podem ser representados pela: – associação, –
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Transcrição da apresentação:

Universidade Católica de Angola Prática de laboratório Fundamentos de Programação II Frei Joaquim José Hangalo

Exemplo simples de trabalho com array de objectos O exemplo apresentado foi retirado Do livro de Alcione de Paiva Oliveira e Vinícius Valente Maciel JAVA NA PRÁTICA, Volume I, UNIVERSIDADE FEDERAL DE VIÇOSA

Conforme o diagrama os objectos da classe Pessoa armazenarão os dados de uma pessoa. A classe fornece os métodos para acesso a estes dados.

O objecto da classe PessoaDAO é composto por vários dados de pessoa. A classe PessoaDAO possui os métodos necessários para a inserção e recuperação de dados. O método inserir(), trata de inserir uma pessoa na lista de pessoas, o método listarPessoas(), retorna uma lista contendo todos os objectos da classe Pessoa e o método buscarPessoaPeloNome() retorna um objecto da classe Pessoa em função do nome especificado.

A classe Agenda é responsável por fornecer os método que implementam a interface com o utilizador. Ela foi criada por questões de projecto, uma vez que é importante manter separado o código das interfaces do sistema.

Classe Pessoa.java public class Pessoa { private String nome; private String telefone; private String endereco; public Pessoa() { } … } sets e gets omitidos

Classe PessoaDAO.java public class PessoaDAO{ Pessoa pessoas[]; public PessoaDAO() { pessoas=null; } // Métodos public void inserir (Pessoa pessoa){ if(pessoas == null) pessoas = new Pessoa[1]; else aumentaCapacidade(); pessoas[pessoas.length-1]=pessoa; } …

// Consultar public Pessoa buscaPessoaPeloNome (String nome){ Pessoa aux = null; for(int i =0; i<pessoas.length; i++) if(pessoas[i].getNome().equals(nome)) aux=pessoas[i]; return aux; }

//listar public Pessoa[] listaPessoas(){ return pessoas; } // aumenta capacidade private void aumentaCapacidade() { Pessoa[] aux = new Pessoa[pessoas.length+1]; for(int i=0; i<pessoas.length; i++) aux[i]= pessoas[i]; pessoas=aux; } }

O método aumentaCapacidade(), cria um novo array maior em uma unidade que o anterior. Esta não é uma solução muito eficiente. O melhor seria incrementar o array em várias unidades, de modo que o redimensionamento seria necessário em intervalos menores. Entretanto, o código seria bem mais complexo.

O método buscaPessoaPeloNome() retorna um objecto com um dado nome igual ao passado ao método. Se não existir tal objecto é retornado null. Já o método listaPessoas() retorna uma referencia ao array de objectos do tipo Pessoa.

Classe AgenaInt import java.io.*; public class Agenda { PessoaDAO pessoaDAO; BufferedReader in; public Agenda() { pessoaDAO = new PessoaDAO(); in = new BufferedReader(new InputStreamReader(System.in)); } …

// Exibir lista public void mostraPessoas() { Pessoa pessoa[] = pessoaDAO.listaPessoas(); for (int i = 0; i < pessoa.length; i++) { System.out.println("\nNome:\t" + pessoa[i].getNome() + "\nTelefone:\t" + pessoa[i].getTelefone() + "\nEndereco:\t" + pessoa[i].getEndereco() + "\n"); }

// Exibir Pessoa public void mostraDadosDaPessoa() { String nome = null; try { System.out.println("Escreva o nome da pessoa que procura"); nome = in.readLine(); if (nome.length() < 1) { System.exit(-1); } } catch (IOException e) { System.out.println(e.getMessage()); System.exit(-1); } Pessoa pessoa = pessoaDAO.buscaPessoaPeloNome(nome); if (pessoa != null) { System.out.println("\nNOme:\t" + pessoa.getNome() + "\nTelefone:\t" + pessoa.getTelefone() + "\nEndereco:\t" + pessoa.getEndereco()); }

//Obter dados da pessoa public void obterDadosDaPessoa() { String nome; String telefone; String endereco; try { System.out.println("Escreva o nome"); nome = in.readLine(); if (nome.length() < 1) { System.exit(-1); } System.out.println("Escreva o numero do telefone"); telefone = in.readLine(); -…

System.out.println("Escreva o endereco"); endereco = in.readLine(); pessoaDAO.inserir(new Pessoa(nome, telefone, endereco)); } catch (IOException e) { System.out.println(e.getMessage()); System.exit(-1); } …

// main public static void main(String args[]) { Agenda ag = new Agenda(); String opcao = ""; for (;;) { System.out.println( "\nAgenda Pessoal\n***********************\n"); System.out.print( "Opcoes:\n(i)nserir\n(c)onsultar\n(l)istar\n(f)im=>"); try { opcao = ag.in.readLine(); } catch (IOException e) { System.out.println(e.getMessage()); System.exit(-1); } switch (opcao.charAt(0)) { case 'f':

System.exit(0); break; case 'i': ag.obterDadosDaPessoa(); break; case 'c': ag.mostraDadosDaPessoa(); break; case 'l': ag.mostraPessoas(); break; }

O método main() da classe Agenda cria um objecto da própria classe, que por sua vez possui um objecto da classe PessoaDAO. A partir de então o programa entra num laço, que aguarda e atende às solicitações do utilizador.

Todos os métodos da classe recebem e exibem dados por meio dos dispositivos de E/S padrão. Para ler os dados do dispositivo de entrada padrão, uma linha por vez, foi necessário encapsular o objecto System.in em objectos das classes BufferedReader e InputStreamReader. a entrada de dados será realizada por meio do método readLine(), que retorna a linha digitada pelo utilizador.

Trabalho a realizar Criar uma aplicação semelhante mas com interface gráfica (JOptionPane) O conhecimento e a criatividade serão a base para a defesa para estudo e aprofundamento além do livro de Deitel consultar também a apostila da caelum ( intitulada: Algoritmos e estrutura de dados em Java (só a parte que fala de vectores)…