Vous êtes sur la page 1sur 22

Fernando Albuquerque - fernando@cic.unb.

br

Conceitos Orientao a Objetos


Fernando Albuquerque
061-2733589
fernando@cic.unb.br

Fernando Albuquerque - fernando@cic.unb.br

Tpicos
n
n
n
n
n

Classes
Objetos
Mensagens e mtodos
Herana e hierarquias
Exemplos de classes

Fernando Albuquerque - fernando@cic.unb.br

Classes
n

Classes :
Padres a partir dos quais objetos so criados
Especificam comportamento comum aos objetos
Descrevem a estrutura de um objeto
Objetos de uma mesma classe so idnticos
Contm a declarao de atributos e mtodos

Fernando Albuquerque - fernando@cic.unb.br

Classes
palavra-chave
nome da classe

public class BemVindo


{
static String mensagem = "Bem Vindo";
public static void main (String[] args) {
System.out.println ( mensagem );
}
}

Fernando Albuquerque - fernando@cic.unb.br

Classes
n

Atributos :
Definem comportamento esttico das instncias
Apresentam nome e valor
Tem os seus valores restritos uma faixa
Podem ter valores default iniciais
Podem ter valores fixos ou variveis
Podem ter valores diferentes para cada instncia
Podem ter valores iguais para cada instncia

Fernando Albuquerque - fernando@cic.unb.br

Classes
n

Mtodos :
Comportamento dinmico de uma classe
Controlam o acesso aos atributos
Atributos so encapsulados
Se diz que os mtodos so invocados
Mtodos podem ser pblicos ou privados
Mtodos privados so de uso interno
Mtodos pblicos definem servios

Fernando Albuquerque - fernando@cic.unb.br

Classes
n

Notao UML :
Nome
Atributos
Mtodos

Pessoa
nome
nascimento
endereo
telefone
RG
CPF

Pessoa
-nome:String
-nascimento:Date
-endereo:String
-telefone:Integer
-RG:Integer
-CPF:Integer

Fernando Albuquerque - fernando@cic.unb.br

Relacionamentos entre classes


n

Tipos de relacionamentos entre classes :


Precisa conhecer
parte de
um tipo de

- associao
- agregao
- herana

Associao :
Links so ligaes fsicas entre objetos
Associaes descrevem grupos de links iguais
Multiplicidade limita o tamanho de uma coleo
Cardinalidade o tamanho de uma coleo

Fernando Albuquerque - fernando@cic.unb.br

Relacionamentos entre classes


n

Agregao :
Relacionamento do tipo -parte-de
Associao entre um todo e suas partes

Especializao :
Atributo adicional
Restries quanto ao valor do atributo
Atributo passando a ter valor constante
Mtodo adicional
Redefinio de mtodo

Fernando Albuquerque - fernando@cic.unb.br

Relacionamentos entre classes


n

Herana :
Possibilita reutilizao de classes
Classes podem herdar variveis e mtodos
Possibilita especializao e evoluo
Podem haver mltiplos nveis
Classes so organizadas em hierarquias

Fernando Albuquerque - fernando@cic.unb.br

Relacionamentos entre classes


nome da classe derivada

nome da classe base

class

Point extends Object { variveis privadas


double
x ;
double
y ;
public void
apresenta ( double x , double y )

{
this . x = x ;
this . y = y ;
}
}

funo-membro pblica

Fernando Albuquerque - fernando@cic.unb.br

Relacionamentos entre classes


n

Notao UML :
Associao

Conta Corrente

Conta Especial

1..*

Conta Investimento

Cliente

Generalizao

Fernando Albuquerque - fernando@cic.unb.br

Relacionamentos entre classes


Equipe

Barra Manu

Pessoa

Menu

Composio ( partes no existem sem o todo )


Agregao

Item

Fernando Albuquerque - fernando@cic.unb.br

Interfaces
n

Interfaces :
Definem os servios providos por classes
Contm mtodos pblicos abstratos
So implementadas por classes
Possibilitam codificao de forma genrica
Aumenta a portabilidade do cdigo
Uma classe pode implementar mltiplas interfaces

Fernando Albuquerque - fernando@cic.unb.br

Interfaces
interface ContaCorrente {
void
depositar
double sacar
}

( double valor );
( double valor );

class ContaEspecial implements ContaCorrente {


void depositar ( double valor ) {
// Cdigo do mtodo
}
double sacar ( double valor ) {
// Cdigo do mtodo
}
// Restante do cdigo da classe
}

Fernando Albuquerque - fernando@cic.unb.br

Interfaces
n

Notao UML :
ContaCorrente
Tela Saque

ContaEspecial
<< interface >>
ContaCorrente
{ abstract }

depositar ( valor : Real ) { abstract }


sacar ( valor : Real ) : Real { abstract }

Fernando Albuquerque - fernando@cic.unb.br

Objetos
n

Objetos :
So instncias das classes
Podem existir mltiplos objetos de mesma classe
Estado do objeto escondido do mundo exterior
Mtodos determinam a interface com o objeto

Exemplo :
Cliente

classe

criando o objeto
jose = new

Cliente ( ) ;

referncia para o objeto

Fernando Albuquerque - fernando@cic.unb.br

Objetos
n

Notao UML :
Um objeto apresentado
como uma classe cujo
nome sublinhado.

O nome do objeto opcional.

Autor : Pessoa
-nome = Pedro Silva
-endereo = Brasilia
-telefone = 2733589
-RG = 5889993
-CPF = 23887877

Fernando Albuquerque - fernando@cic.unb.br

Interaes entre objetos


n

Mensagens :
Possibilitam interao entre os objetos
Contm nome do objeto, do mtodo e parmetros
menu_principal.seleciona ( segunda_opcao ) ;

objeto

mtodo

parmetro

solicitao
emissor

receptor
resposta

Fernando Albuquerque - fernando@cic.unb.br

Interaes entre objetos


n

Notao UML :
Podem ser usados diagramas de colaborao ou
diagramas de seqncia
Ambos representam as interaes entre os objetos
Diagramas de seqncia focam no tempo e os de
colaborao focam nas ligaes entre os objetos
Ambos podem ser usados para descrever a execuo
de uma operao, de um caso de uso ou um cenrio
de interao

Fernando Albuquerque - fernando@cic.unb.br

Interaes entre objetos


n

Diagramas de seqncia :
Objeto

:Tela
Autenticao

: Usurio

1 : autenticar ( nome , senha )

Ativao

Mensagem

Linha da vida

Fernando Albuquerque - fernando@cic.unb.br

Interaes entre objetos


n

Diagramas de colaborao :
1: analisar ( Temperatura )
Sensor Temperatura

Monitor Temperatura

2: desligar ( )

Ligaes que so
instncias de
relacionamentos
entre classes

Motor

Mensagem enviada
entre objetos