►METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS
Prof. Dr. rer. nat. Daniel D. Abdala
e-mail: [email protected]
1
 Aprimorar
a compreensão dos diversos
aspectos da orientação a objetos;
 Introduzir os conceitos de:
• Encapsulamento;
• Herança;
• Polimorfismo.
 Exercitar
os tópicos visto em aula via o
exemplo Geometrix.
2
 Os
doze termos da OO;
 Revisão dos conceitos da aula passada;
 Encapsulamento;
 Herança;
 Polimorfismo;
 Exemplos.
3
 Objeto
 Método
 Mensagem
 Classe
 Subclasse
 Instância
 Herança
 Encapsulamento
 Abstração
 Polimorfismo
 Atributo
 Agregação
4
 Objetos
vs Classes vs Instâncias
• Objetos – abstração das entidades do mundo real.
Levantamento de atributos e comportamentos;
• Classes – template para criação de objetos
funcionais(Instâncias)
• Instâncias – realização funcional do objeto
5
métodos
variáveis
6
CPF
Registrar cartão
nome
RG
cartão
carrinho
atributos
Finalizar compra
Atualizar endereço
métodos
Adiciona item
Validar cartão
7
 Objetos
são uma forma de programar
simples e poderosa:
• Podem ser definidos e mantidos
independentemente uns dos outros;
• Definem um universo auto-contido;
• Tudo que o objeto “sabe” e representa é
definido por suas variáveis/atributos;
• Tudo que o objeto “pode fazer” é expresso por
seus métodos.
8
O sistema Geometrix é um programa que permite o
desenho e cálculos relacionados a figuras geométricas
tais como pontos, linha, retângulos, círculos, esferas,
elipses, cubos, curvas, polígonos e polilinhas. Algumas
figuras tais como retângulos e círculos podem ser
capazes de informar suas áreas, perímetros dentre
outras métricas geométricas. Todas as figuras podem
ser redimensionadas (exceto os pontos), rotacionadas,
escalonadas, ter suas coordenadas atualizadas ou
movidas por meio de um offset definido pelo usuário. O
conjunto de todas as figuras desenhadas em um sessão
do programa compõem um diagrama que pode ser
salvo ou carregado de um arquivo salvo em disco.
9
 Em
Java
public class<nome_classe>
{
private<attr1>;
private<método> (argumentos)
{...}
// interface
public<método> (argumentos) {...}
}
Exercício, defina classes java para os objetos
levantados a partir do exemplo Geometrix.
10
 Encapsulamento
é um conceito fundamental
em programação OO.
 A idéia que permeia o conceito de
encapsulamento é isolar o conteúdo
(atributos e métodos) de um objeto do
mundo exterior (outros objetos).
 Devido ao encapsulamento objetos atuam
tal como “caixas pretas”.
 Sua mecânica e sua estrutura não importam,
apenas a sua interface, ou seja, a porção do
objeto publicada ou deixada visível para o
mundo exterior.
11
Métodos públicos
interface
mensagens
Métodos
privados
atributos
12
 Idéia
geral: Objetos podem ser parte
integrante de outros objetos.
• Instâncias de um dado objeto podem ser
atributos de outro objeto!
Agregar objetos é utilizar objetos como
atributos de objetos mais complexos.
13
Objeto Linha
Ponto p1;
Ponto p2;
14
 Poli – Várias , Morfos – Formas
 Métodos declarados em diferentes
escopos
ou até mesmo no mesmo escopo podem ter
o mesmo nome.
 Três tipos:
• Sobrecarga de Função: funções com mesmo nome;
• Inclusão: Uma referência para classes mãe pode
apontar para uma instância de uma classe filha.
• Paramétrico: permite que uma função ou tipo de
dados seja definido parametricamente de modo que
ele lide com valores de maneira similar sem
depender do tipo do dado em questão
15
Ponto () { x = 0; y = 0; }
Ponto (intnx, intny) {x =nx; y = ny;}
16
public class Animal {
string talk();
}
public class Gato extends Animal {
string talk() {return “Miau!”}
}
public class Cachorro extends Animal {
string talk() {return “Auau!”}
}
static void write (Animal a) {
System.out.println(a.talk()); }
static void main () {
write (new Gato());
write (new Cachorro());
}
17
class List <T> {
class Node <T> {
T elem;
Node <T> next;
}
Node <T> head;
int length() {…}
}
18
 Outra
forma de definir objetos a partir de
objetos pré-existentes;
 Herança é fundamentada visto que certos
objetos podem ser vistos como
especializações de objetos mais genéricos
pré-existentes.
Animal
ave
mamífero
primata
peixe
inseto
anfíbio
verme
fera
19
 Objetos
mais complexos podem ser
definidos como extensões de objetos
mais simples:
Usuário
Padrão
Admin
20
 Com
relação a herança de classes, é
possível definir uma classe como sendo
abstrata. Este tipo especial de classe não
pode ser instanciada e serve apenas
para definir uma estrutura e interface
uniforme a ser compartilhada por todas
as subclasses.
21
 Programação
OO utiliza um vocabulário
específico;
 Relação entre objetos, classes e instâncias;
 Encapsulamento define o escopo dos objetos
„information hiding“;
 Agragação permite que objetos complexos
sejam definidos como uma composição de
objetos mais simples
 Herança permite que objetos mais complexos
sejam definidos como uma extensão de um
objeto mais simples
22
 D. A. Taylor, Object-Oriented
Technology: A
Manager’s Guide. Adson-Wesley Publishing
Company, Inc. 1990.
 R. S. Wazlawick, Análise e Projeto de Sistemas
de Informação Orientados a Objetos. Ed.
Campus, 2004.
 H. M. Deitel, P. J. Deitel. Java™ Como Programar.
Bookman, 3rd Ed, 2000.
23
Download

DesenvolvimentoOO_2