Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para...

70
Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Conceitos de Interface; classes abstratas; Diagrama de sequencia, Diagrama de atividades, classes aninhadas APOO 1 atividades, classes aninhadas e Listas dinâmicas Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C. de Jesus

Transcript of Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para...

Page 1: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Curso Disciplina Linguagem de Programação II

Curso Engenharia da Computação

Conceitos de Interface; classes abstratas; Diagrama de sequencia, Diagrama de

atividades, classes aninhadas

APOO

1

atividades, classes aninhadas e Listas dinâmicas

Site : http://www1.univap.br/~wagner/ec.html

Prof. Responsáveis

Wagner Santos C. de Jesus

Page 2: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Conceito de Interface

Criação de uma classe Criação de uma classe do tipo Interface

2

Page 3: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Interface

As interface do Java são criadas parasuportar a resolução dinâmica de métodos emtempo de execução. Para que método sejachamado de uma classe para outra, ambas aschamado de uma classe para outra, ambas asclasses precisam estar presentes em tempo decompilação para que o compilador Java possachecar se as assinaturas de métodos sãocompatíveis.

3

Page 4: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Implementação da interface

1 - A assinatura do método não deve ser declarada co mo privada.2 – Não pode haver sobrecarga.3 – Não pode haver implementação de métodos.4 – Não pode ser instanciada diretamente.5 – Não pode ser usada como superclasse.6 – Toda interface deve ter uma classe dependente pa ra implementar seus métodos.

4

Page 5: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo prático (interface)

Implementação do método

5

Page 6: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Sintaxe da criação de uma classe do tipo interface

interface Nome_classe {

<tipo> <nome_var_final> = <valor>;

public tipo nomeMetodo([<parâmetros>]);

}

6

Page 7: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo Prático da criação de uma classe do tipo interface

interface Area {

public double calcularArea(int b, int h);public double calcularArea(int b, int h);

}

7

Page 8: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

implements

Comando que determina as classe queserão confeccionados os códigos específicospara o funcionamento devido dos métodos.Herdando a classe interface.

Sintaxe:

class <Nome-Classe> implements <interface> {

<Implementação dos metodos interface>

}

8

Page 9: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo Prático de implementaçãointerface Area {

public double calcularArea(int b, int h);

}

class Triangulo implements Area {

public double calcularArea(int b, int h) {

return ((b * h) / 2);

}}

}

class Retangulo implements Area {

public double calcularArea(int b,int h) {

return b * h;

}

}

9

Page 10: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Classe com método main()

class Figura {

public static void main(String args[]){

Area obj = new Triangulo();

System.out.println(obj.calcularArea(3, 2));System.out.println(obj.calcularArea(3, 2));

obj = new Retangulo();

System.out.println(obj.calcularArea(3, 2));

}

}

10

Page 11: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Classes Abstratas

(abstract)(abstract)

11

Page 12: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Conceito de classe abstrata

Declara-se como estrutura de um dadaabstração sem fornecer uma implementaçãocompleta de cada método. Podendo cadacompleta de cada método. Podendo cadaação ser sobreposta pelos usuários dassubclasses que utilizam o modificador de tipoabstract.

12

Page 13: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Funcionamento das classes abstratas.

1 - A assinatura do método devem ser declarados como abstratos.2 – Pode haver sobrecarga.3 – Pode haver implementação de métodos.

13

3 – Pode haver implementação de métodos.4 – Não pode ser instanciada diretamente.5 – Não pode ser usada como superclasse.6 – Todas as subclasses dependentes devem implementar seus métodos.

Page 14: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Classe abstrata e suas derivadas

14

Page 15: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo abstração

abstract class Agrupamento {

abstract int soma(int x,int y);

abstract int soma(int y[]);abstract int soma(int y[]);

abstract String soma(String x,String y);

}

15

Page 16: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

OperacaoSimples herda Agrupamento

public class Operacaosimples extends Agrupamento {

int soma(int x,int y){

return x + y;

}

int soma(int x[]){return x[0];}

String soma(String x,String y) {return x;}

}

16

Page 17: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

OperacaoArranjo herda Agrupamento

public class OperacaoArranjo extends Agrupamento {

int soma(int x[]){

int soma = 0;

for(int indice=0;indice<=x.length-1;indice++)

soma += x[indice];

return soma;

}

int soma(int x,int y){return x;}

String soma(String x,String y) {return x;}

}

17

Page 18: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

OperacaoString herda Agrupamento

public class OperacaoString extends Agrupamento {

int soma(int x[]){ return x[0];}

int soma(int x,int y){return x;}

String soma(String x,String y) {String soma(String x,String y) {

return x + y;

}

}

18

Page 19: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Criando Diagramas de Objetos

Um diagrama de objetos consiste numainstância do diagrama de classes, no qual paracada classe temos um objeto (sua instância) emcada classe temos um objeto (sua instância) emum determinado ponto.

19

Page 20: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Cuidado !!!

Logicamente é impossível exibirmostudo, Desta forma, deve se mostrar nodiagrama de objetos somente um conjuntodiagrama de objetos somente um conjuntode objetos que tenham relevância dentroda modelagem.

20

Page 21: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Nomeando um objeto

Sintaxe :

nome do objeto : nome da classe

Exemplo :

Button1 : TButton

21

Page 22: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Quanto aos Atributo(propriedades)

Exemplo : Classe Objeto

22

Page 23: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo de Diagrama de Classes

23

Page 24: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo de Diagrama de Objetos

P1 : Projeto

Descricao = "Controle Estoque"Inicio = "01/06/2006"Termino = "01/10/2006"Custo = R$ 12000,00

F1 : Funcionario

Nome = "Jose das Couves"Cargo = "Gerente de projetos"CarteiraProfissional = "012345-1"dataAdmissao = "15/03/1999"

F2 : Funcionario

Nome = "Maria da Silva"Cargo = "Programadora"CarteiraProfissional = "04567-2"dataAdmissao = "18/03/2005"

F3 : Funcionario

Nome = "Maria da Silva"Cargo = "Programadora"CarteiraProfissional = "04567-2"dataAdmissao = "18/03/2005"IncioContrato = "20/01/2007"TerminoContrato = "22/09/2007"

24

Page 25: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Diagrama de Interação

Interação corresponde a um conjuntode mensagens(dados) trocados entrede mensagens(dados) trocados entreobjetos com o objetivo de alcançar a umdeterminado propósito.

25

Page 26: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Diagrama de Interação se divide em duas partes

Diagrama de Sequencia

Diagrama de Atividade Diagrama de Atividade

26

Page 27: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Diagrama de Seqüência

Representa as trocas de informaçõesentre um objeto e outro quando interagementre um objeto e outro quando interagemno mesmo processo.

27

Page 28: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo : Diag. Seqüência

28

Page 29: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo de um diagrama de seqüência para uma consul ta a um

Banco de dados dos alunos de uma escola.

29

Page 30: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Identificando uma condição

Os símbolo que determina uma condição vem

a ser [ ], colchete. * asterisco para determinar

que o método será chamado várias vezes.que o método será chamado várias vezes.

30

Page 31: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo : Condição paraauto-chamada

31

Page 32: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

:Acesso

Funcionário

:Venda :Seguranca

Encerramento_Usuario()Solicitar Encerramento

fechamento()

Fechamento do caixa (Especificado)

Diagrama de Seqüência (Encerramento Atividades Funcionários)Projeto de Supermercado

Fechamento do caixa (Especificado)1:Realizar_Backup()

2:Realizar_Backup(1) 3:Realizar_Backup(2)

Encerramento realizado !!! (Logout)

32

Page 33: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Diagrama de Atividades

Um diagrama de atividades é um casoespecial do diagrama de estados no qualtodos (ou pelo menos a maioria) dos estadossão ações ou subatividades nos estados desão ações ou subatividades nos estados deorigem. O diagrama de atividades completo éligado a um classificador, como um caso deuso, um pacote ou a implementação de umaoperação.

33

Page 34: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Estado de ação

Um estado de ação é um tipo simplificadode um estado de máquina. Ou seja é umatarefa executada pelo sistema notarefa executada pelo sistema nodeterminado momento.

34

Page 35: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Um estado de ação é mostrado graficamente

como uma figura formada por linhas superior

e inferior retas e dos lados esquerdo e direito

por arcos convexos. A expressão-ação é

colocada dentro da figura.

PreencherNotas

Exemplos de estados de ação

35

Page 36: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Transições

Mostra o fluxo de um estado de ação paraOutro. É representado com uma linhasimples acompanhada de uma seta dedireção.

36

Page 37: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Decisões

Uma decisão ocorre num diagrama de

atividades quando se deseja por intermédio

de uma condição booleana saber qual

atividade será executada.atividade será executada.

Exemplo :

37

Page 38: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo : Diagrama de Atividade

38

Page 39: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Problema :

Em uma classe denominada matemática seránecessário criar um método que retorne se umnúmero passado como parâmetro é ou nãoprimo.

Classe:

Matematica : Mat

+num_primo() : boolean

Atividade

39

Page 40: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

p = 0

x = n

i = 1

i = i + 1

Diagrama de Atividades (Calculo de números primos)

p = p + 1[x % i = 0 ]

[ i < = x ]

re to rn a f a ls o re to rn a v e rd a d e i ro

[ p < = 2 ]

40

Page 41: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Classes Aninhadas

Agregação ou Agregação ou Decomposição

41

Page 42: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Agregação/Decomposição

Computador Pessoal

MonitorTeclado

AgregaçãoDecomposição

parte-de

CPU Mouse Impressora

42

MonitorTeclado CPU Mouse Impressora

Agregação ou Composição é o agrupamento de componentes baseado emum relacionamento do tipo "todo-parte" ou "parte-de" no qual os objetos querepresentam os componentes de alguma coisa são associados a um objeto querepresenta a estrutura inteira.

Page 43: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Realização do conceito (Agregação e Decomposição)

Para se realiar esse mecanismo pode-secriar uma classe interna a uma outra classeonde se determina que todas as classe criadasonde se determina que todas as classe criadasinternamente serão parte do todo.Caracterizando assim o mecanismo deAgregação o Composição.

43

Page 44: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Classe Ninho composta pela classe Passaro

44

Este exemplo ilustra a classe ninho que contém a cl asse pássaro usando as funcionalidades de alimentação e construç ão do ninho.

Page 45: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Implementaçãopublic class Ninho {

private int palha;private boolean alimento;public void setempalhar(int palha) {

this.palha = palha;}

public void setalimentar(boolean alimento) {this.palha = palha;

public static class Passaro { public static int teste(){

Ninho O = new Ninho();O.setpalha(1);return O.getpalha();

}}

45

this.palha = palha;}

public int getempalhar(){return this.palha;

}

public boolean getalimentar(){return this.alimento;

}

public static void main(String args[]) {

System.out.println(Passaro.teste());}

}

Page 46: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Criando uma Estrutura de Lista Dinâmica

46

Page 47: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Objeto Lista

Pacote (Útil)

ArrayList

Iterator

ListIterator

Classes

java.util.*

47

Page 48: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Para usar os métodos de ArrayList basta importar os pacotes

import java.util.ArrayList;

import java.util.Iterator;

import java.util.ListIterator;

import java.util.Collections;

import java.util.List;

ou

import java.util.*;

48

Page 49: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Construtor de objetos ArraList

ArrayList<String> objString = new ArrayList<String>();

ArrayList<Double> objString = new ArrayList<Double>();

ArrayList<Integer> objString = new ArrayList<Integer>();

ArrayList<Float> objString = new ArrayList<Float>();

Cria um objeto do tipo ArrayList para receber informações dos tipos de dados String, double, float e int.

49

Page 50: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Método: add()

Adiciona um elemento na lista.

Sintaxe :

Obj.add([<expN>],<dado>);

<expN> - Determina qual posição do elemento a ser adicionado. (opcional)

50

Page 51: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Método:Size()

Retorna com número de elementos de um ArrayList.

al.add("C");al.add("C");

al.add("A");

al.add("E");

Object x = al.size();

51

Page 52: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Método : remove()

Remove um elemento do array.

Exemplo :

al.remove(<expN>);

52

Page 53: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Método : indexOf()Retorna com um valor inteiro correspondente a posição

do elemento procurado no Array.

Exemplo :

al.add("Carlos");

al.add("Ana");al.add("Ana");

al.add("fernanda");

al.add("Betania");

int k = al.indexOf("Ana");

System.out.println("Encontra : "+k );

53

Page 54: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Classe Iterator

Cria a interação entre o objeto ArrayList eo hash contendo as referências dos elementosdo vetor.

Exemplo :

Iterator<Tipo> objIterator = objArrayList.iterator();

54

Page 55: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo : Iterator

ArrayList<String> al = new ArrayList<String>();

al.add("Carlos");

al.add("Ana");

al.add("fernanda");al.add("fernanda");

al.add("Betania");

al.add("Daniel");

Iterator<String> itr = al.iterator();

55

Page 56: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

hasNext(), next()

Retornar verdadeiro enquanto tiver elementosno array para serem lidos.

next() : captura o elemento do arrayposicionando o ponteiro no próximo.

Exemplo :

boolean resp = itr.hasNext();

String str = itr.next();

56

Page 57: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo prático:

while (itr.hasNext()) {

String elemento = itr.next();

System.out.println(elemento);System.out.println(elemento);

}

57

Page 58: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo Prático

ArrayList<String> al = new ArrayList<String>();

al.add("Carlos");

al.add("Ana");

al.add("fernanda");

Iterator<String> itr = al.iterator();Iterator<String> itr = al.iterator();

while (itr.hasNext()) {

String elemento = itr.next();

System.out.println(elemento);

}

58

Page 59: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Usando for() para percorrer um objeto

Sintaxe:

for (Classe objeto_receptor : Objeto_Emissor) {

<Implementação><Implementação>

}

59

Page 60: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo prático

public class Mostra {

public void Imprimir (Pessoas pessoas[]){

for (Pessoas pessoa : pessoas) {

System.out.println( pessoa.toString() );System.out.println( pessoa.toString() );

}

}

}

60

Page 61: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Criando Encapsulamento usando lista dinâmicausando lista dinâmica

61

Page 62: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Colaboração entre as classes

62

Page 63: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo usando lista dinâmica

Pessoas p1 = new Pessoas ("Samuel", 23);

Pessoas p2 = new Pessoas ("Camila", 22);

Pessoas p3 = new Pessoas ("Rayane", 20);Pessoas p3 = new Pessoas ("Rayane", 20);

Pessoas p4 = new Pessoas ("Lilian", 24);

Pessoas p5 = new Pessoas ("Pedro", 23);

63

Page 64: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Adicionando dados ao objeto ArrayList

List<Pessoas> pessoas = new ArrayList<Pessoas>();

pessoas.add(p1);

pessoas.add(p2);

pessoas.add(p3);

pessoas.add(p4);

pessoas.add(p5);

for (Pessoas pessoa : pessoas) {

System.out.println( pessoa.toString() );

}64

Page 65: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Subescrita do método toString()

public class Pessoas {

:

:

public String toString(){ public String toString(){

return "Nome: " + nome + "\tIdade: " + idade;

}

:

}65

Page 66: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Ordenando uma lista DinâmicaDinâmica

66

Page 67: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Implementação da interface para ordenação

Collections

67

Sort()

<Dados>

List

Comparable

Page 68: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Comparable<T>

<T> o tipo de objetos que este objeto pode que este objeto pode ser comparado.

68

Page 69: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Exemplo de implementação da classe Comparable

public class Pessoas implements Comparable<Pessoas> {

:

:

public int compareTo(Pessoas o) {public int compareTo(Pessoas o) {

int valor = nome.compareTo(o.nome);

return (valor != 0 ? valor : 1);

}

:

}69

Page 70: Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para suportar a resolução dinâmica de métodos em tempo de execução. Para que método

Classe de inserção dos elementos

pessoas.add(p1);

pessoas.add(p2);

pessoas.add(p3);pessoas.add(p3);

pessoas.add(p4);

pessoas.add(p5);

Collections.sort(pessoas);

70