Prog-II(Parte-6) [Modo de Compatibilidade]Parte-6).pdf · As interface do Java são criadas para...
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/1.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/2.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/3.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/4.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/5.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/6.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/7.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/8.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/9.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/10.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/11.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/12.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/13.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/14.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/15.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/16.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/17.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/18.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/19.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/20.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/21.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/22.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/23.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/24.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/25.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/26.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/27.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/28.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/29.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/30.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/31.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/32.jpg)
: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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/33.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/34.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/35.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/36.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/37.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/38.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/39.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/40.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/41.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/42.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/43.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/44.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/45.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/46.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/47.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/48.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/49.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/50.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/51.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/52.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/53.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/54.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/55.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/56.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/57.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/58.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/59.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/60.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/61.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/62.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/63.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/64.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/65.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/66.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/67.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/68.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/69.jpg)
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](https://reader036.fdocumentos.tips/reader036/viewer/2022070721/5ee14cf4ad6a402d666c3b18/html5/thumbnails/70.jpg)
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