Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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
Conceito de Interface
Criação de uma classe Criação de uma classe do tipo Interface
2
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
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
Exemplo prático (interface)
Implementação do método
5
Sintaxe da criação de uma classe do tipo interface
interface Nome_classe {
<tipo> <nome_var_final> = <valor>;
public tipo nomeMetodo([<parâmetros>]);
}
6
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
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
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
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
Classes Abstratas
(abstract)(abstract)
11
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
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.
Classe abstrata e suas derivadas
14
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
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
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
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
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
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
Nomeando um objeto
Sintaxe :
nome do objeto : nome da classe
Exemplo :
Button1 : TButton
21
Quanto aos Atributo(propriedades)
Exemplo : Classe Objeto
22
Exemplo de Diagrama de Classes
23
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
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
Diagrama de Interação se divide em duas partes
Diagrama de Sequencia
Diagrama de Atividade Diagrama de Atividade
26
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
Exemplo : Diag. Seqüência
28
Exemplo de um diagrama de seqüência para uma consul ta a um
Banco de dados dos alunos de uma escola.
29
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
Exemplo : Condição paraauto-chamada
31
: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
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
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
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
Transições
Mostra o fluxo de um estado de ação paraOutro. É representado com uma linhasimples acompanhada de uma seta dedireção.
36
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
Exemplo : Diagrama de Atividade
38
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
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
Classes Aninhadas
Agregação ou Agregação ou Decomposição
41
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.
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
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.
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());}
}
Criando uma Estrutura de Lista Dinâmica
46
Objeto Lista
Pacote (Útil)
ArrayList
Iterator
ListIterator
Classes
java.util.*
47
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
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
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
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
Método : remove()
Remove um elemento do array.
Exemplo :
al.remove(<expN>);
52
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
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
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
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
Exemplo prático:
while (itr.hasNext()) {
String elemento = itr.next();
System.out.println(elemento);System.out.println(elemento);
}
57
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
Usando for() para percorrer um objeto
Sintaxe:
for (Classe objeto_receptor : Objeto_Emissor) {
<Implementação><Implementação>
}
59
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
Criando Encapsulamento usando lista dinâmicausando lista dinâmica
61
Colaboração entre as classes
62
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
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
Subescrita do método toString()
public class Pessoas {
:
:
public String toString(){ public String toString(){
return "Nome: " + nome + "\tIdade: " + idade;
}
:
}65
Ordenando uma lista DinâmicaDinâmica
66
Implementação da interface para ordenação
Collections
67
Sort()
<Dados>
List
Comparable
Comparable<T>
<T> o tipo de objetos que este objeto pode que este objeto pode ser comparado.
68
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
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