Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAna Natal Castro Alterado mais de 8 anos atrás
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?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.