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

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

COMPORTAMENTO SOFISTICADO Dilvan Moreira (baseado no livro Prog. Orientada a Objetos em Java)

Apresentações semelhantes


Apresentação em tema: "COMPORTAMENTO SOFISTICADO Dilvan Moreira (baseado no livro Prog. Orientada a Objetos em Java)"— Transcrição da apresentação:

1 COMPORTAMENTO SOFISTICADO Dilvan Moreira (baseado no livro Prog. Orientada a Objetos em Java)

2 Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 2 Principais conceitos  Mais coleções  Utilizando classes de biblioteca  Lendo a documentação

3 Leitura  Capítulo 5 (Prog. Orient. a Obj. usando Java - 4th Edition)

4 Lembrando: Coleções - ArrayList Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 4

5 Lembrando: Classes genéricas  Coleções são conhecidas como tipos parametrizados ou genéricos.  ArrayList implementa a funcionalidade de lista: – add, get, size, etc.  O parâmetro de tipo diz o que queremos de uma lista de: – ArrayList – etc. Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 5

6 Lembrando: Loop for-each Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 6 for(ElementType element : collection) { loop body } Para cada elemento na coleção, faça as coisas no corpo do loop. cabeçalho loop palavra chave for instrução(ões) a ser(rem) repetida(s) Expressão de pseudocódigo de ações de um loop for-each Forma geral do loop for-each

7 Lembrando: Um exemplo do Java Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 7 /** * Lista todas as notas no bloco de notas. */ public void listNotes() { for(String note : notes) { System.out.println(note); } para cada nota em notes, imprime a nota

8 Lembrando: Identidade versus igualdade Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 8 Outros objetos (não-String): person1 == person2 ? “Fred” :Person person1person2 “Fred” :Person

9 Lembrando: Identidade versus igualdade Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 9 Outros objetos (não-String): person1 == person2 ? “Fred” :Person person1person2 “Fred” :Person

10 Lembrando: Objeto Iterator Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 10 Iterator it = myCollection.iterator(); while(it.hasNext()) { call it.next() para obter o próximo objeto faz algo com esse objeto } java.util.Iterator retorna um objeto Iterator public void listNotes() { Iterator it = notes.iterator(); while(it.hasNext()) { System.out.println(it.next()); }

11 Lembrando: Índice versus iteradores  Maneiras de iterar em uma coleção:  loop for-each, loop. Usamos se queremos processar cada elemento.  loop while. Usamos se quisermos parar no meio do caminho. Usamos para repetição que não envolva uma coleção.  Objeto Iterator. Usamos se quisermos parar no meio do caminho. Muitas vezes usado com coleções onde um acesso indexado não é muito eficiente, ou é impossível.  Iteração é um importante padrão de programação. Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 11

12 Lembrando: Uso de array padrão Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 12 private int[] hourCounts; private String[] names;... hourCounts = new int[24];... hourcounts[i] = 0; hourcounts[i]++; System.out.println(hourcounts[i]); declaração criação uso

13 A biblioteca de classes Java  Milhares de classes.  Dezenas de milhares de métodos.  Muitas classes úteis que tornam a vida muito mais fácil.  Um programador Java competente deve ser capaz de trabalhar com as bibliotecas. Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 13

14 Trabalhando com a biblioteca Você deve:  conhecer algumas classes importantes por nome;  saber como encontrar outras classes. Lembre-se:  Precisamos conhecer apenas a interface, mas não a implementação. Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 14

15 Um sistema de suporte técnico  Um sistema de diálogo textual  Idéia baseada no ‘Eliza’ por Joseph Weizenbaum (MIT, 1960s)  Explore… Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 15

16 Estrutura de loop principal boolean finished = false; while(!finished) { do something if(exit condition) { finished = true; } else { do something more } Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 16

17 Corpo do loop principal String input = reader.getInput();... String response = responder.generateResponse(); System.out.println(response); Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 17

18 A condição de saída String inputLine = reader.nextLine(); if(input.startsWith("bye")) { finished = true; } De onde vem ‘startsWith’? O que é? O que faz? Como podemos localizá-la? Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 18

19 Lendo a documentação de classe  Documentação das bibliotecas Java no formato HTML  Legível em um navegador Web  API de classe: Application Programmers’ Interface  Descrição de interface de todas as classes biblioteca Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 19

20 Interface versus implementação A documentação inclui:  o nome da classe  uma descrição geral da classe  uma lista de construtores e métodos  valores de retorno e parâmetros para construtores e métodos  uma descrição do propósito de cada construtor e método a interface da classe Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 20

21 Interface versus implementação A documentação não inclui:  campos privados (a maioria dos campos são privados)  métodos privados  os corpos (código-fonte) para cada método a implementação da classe Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 21

22 Pacotes e importação  As classes são organizadas em pacotes.  Classes únicas podem ser importadas: import java.util.ArrayList;  Pacotes inteiros podem ser importados: import java.util.*; Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 22

23 Utilizando Random  A classe de biblioteca Random pode ser usada para gerar números aleatórios: Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 23 import java.util.Random;... Random randomGenerator = new Random();... int index1 = randomGenerator.nextInt(); int index2 = randomGenerator.nextInt(100);

24 Gerando respostas aleatórias Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 24 public Responder() { randomGenerator = new Random(); responses = new ArrayList (); fillResponses(); } public String generateResponse() { int index = randomGenerator.nextInt(responses.size()); return responses.get(index); } public void fillResponses() {... }

25 Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 25 Comportamento mais sofisticado Usando classes de bibliotecas para implementar algumas funcionalidades mais avançadas

26 O que está errado aqui? Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 26 class NoteBook { private ArrayList notes; public NoteBook() { ArrayList notes = new ArrayList (); } public vois addNote(String note) { notes.add(note); }

27 Principais conceitos a serem abrangidos  Mais classes de bibliotecas  Escrevendo a documentação Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 27

28 Conjuntos - Sets import java.util.HashSet;... HashSet mySet = new HashSet (); mySet.add("one"); mySet.add("two"); mySet.add("three"); for(String element : mySet) { do something with element } Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 28 Compare esses com o código ArrayList!

29 Tokenizando strings public HashSet getInput() { System.out.print("> "); String inputLine = reader.nextLine().trim().toLowerCase(); String[] wordArray = inputLine.split(" "); HashSet words = new HashSet (); for(String word : wordArray) { words.add(word); } return words; } Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 29

30 Mapas  Mapas são coleções que contêm pares de valores.  Os pares consistem em uma chave e um valor.  A pesquisa funciona fornecendo uma chave e recuperando um valor.  Um exemplo: uma lista telefônica. Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 30

31 Utilizando mapas  Um mapa com Strings como chaves e valores Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 31 "Charles Nguyen" :HashMap "(531) 9392 4587" "Lisa Jones""(402) 4536 4674" "William H. Smith""(998) 5488 0123"

32 Utilizando mapas HashMap phoneBook = new HashMap (); phoneBook.put("Charles Nguyen", "(531) 9392 4587"); phoneBook.put("Lisa Jones", "(402) 4536 4674"); phoneBook.put("William H. Smith", "(998) 5488 0123"); String phoneNumber = phoneBook.get("Lisa Jones"); System.out.println(phoneNumber); Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 32

33 Escrevendo a documentação de classe  Suas próprias classes devem ser documentadas da mesma maneira que as classes de biblioteca.  Outras pessoas devem ser capazes de utilizar sua classe sem ler a implementação.  Torne sua classe uma 'classe de biblioteca'! Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 33

34 Elementos da documentação A documentação de uma classe deve incluir:  o nome da classe  um comentário que descreva o propósito geral e as características da classe  um número de versão  os nomes dos autores  a documentação para cada construtor e cada método Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 34

35 Elementos da documentação A documentação de cada construtor e método deve incluir:  o nome do método  o tipo de retorno  o nome e os tipos de parâmetro  uma descrição do propósito e da função do método  uma descrição de cada parâmetro  uma descrição do valor retornado Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 35

36 javadoc Comentário sobre a classe: /** * A classe Responder representa um objeto * gerador de resposta. É utilizada para gerar uma * resposta automática. * * @author Michael Kölling e David J. Barnes * @version 1.0 (30.Mar.2006) */ Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 36

37 javadoc Comentário sobre o método: /** * Lê uma linha de texto da entrada padrão (o texto * terminal), e a retorna como um conjunto de palavras. * * @param prompt Um prompt a ser impresso na tela. * @return Um conjunto de Strings, onde cada String é * uma das palavras digitadas pelo usuário */ public HashSet getInput(String prompt) {... } Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 37

38 Variáveis de classe Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 38

39 Constantes private static final int gravity = 3;  private : modificador de acesso, como de costume  static : variável de classe  final : constante Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © 2008 by Pearson Education slide 39

40 Perguntas?


Carregar ppt "COMPORTAMENTO SOFISTICADO Dilvan Moreira (baseado no livro Prog. Orientada a Objetos em Java)"

Apresentações semelhantes


Anúncios Google