Sunteți pe pagina 1din 55

Bacharelado em Cincia da Computao

Programao Orientada a Objetos I


Introduo POO
parte 01
Prof. Dr. Fbio Fagundes Silveira
fsilveira@unifesp.br
http://fabiosilveira.net

UNIFESP Universidade Federal de So Paulo


agosto/2008

Crditos

Grande parte destes slides so baseados


e/ou provenientes:

do material preparado pelos Profs. Drs.


Christine Marie Schweitzer, Guiou Kobayashi,
Itana Stiubiener e Maria das Graas Marietto
do livro: Core Java Volume I
Fundamentos, de autoria de Cay Horstmann
e Gary Cornell

Programao Orientada a
Objetos (POO)
Surgiu

na tentativa de solucionar problemas


existentes no desenvolvimento de software
complexos e confiveis, com baixo custo de
desenvolvimento e manuteno
Mundo Real formado por objetos que interagem
entre si
Representar esses objetos em um software mais
natural e permanente do que representar de forma
estruturada

PROGRAMAO ORIENTADA A OBJETOS (POO)

Para que haja um entendimento satisfatrio do


paradigma da POO necessrio o conhecimento de
alguns conceitos:
Modelagem
Abstrao
Classe
Objeto
Encapsulamento
Herana

POO - MODELAGEM
Mundo Real

Mundo
Computacional

ESPAO DE
SOLUES

ESPAO DE
PROBLEMAS
Gap Semntico

Aspectos mais importantes do mundo real,


para fins de representao no computador
5

POO - MODELAGEM
Mundo Real

Mundo
Computacional
ESPAO DE
SOLUES

ESPAO DE
PROBLEMAS
Modelagem

Processo de Identificao de Abstraes


Se as abstraes no tiverem uma expresso prxima do mundo
computacional, a complexidade da soluo ser aumentada
6

POO - MODELAGEM

Tarefa de fundamental importncia em um


processo de desenvolvimento de software
Realiza-se a anlise do domnio da aplicao e a
modelagem das entidades e fenmenos desse
domnio que o projetista considera importante
A tarefa de modelagem conceitual envolve dois
mecanismos:
Abstrao
Representao

POO - MODELAGEM
Refere-se s
convenes de
representao

Operao mental
para observar um
domnio e capturar
sua estrutura

REPRESENTAO

ABSTRAO
Entidade
Observada

Entidade
Representada
Notao grfica,
linguagem de programao

Avio
8

POO - ABSTRAO

Focalizar o essencial, ignorando propriedades


secundrias
Uma abstrao uma maneira de representar, em um
nico elemento, um grupo de caractersticas de
maneira a expressar suas similaridades e suprimir
suas diferenas

RVORE

AUTOMVEL
9

POO - ABSTRAO

Atravs da abstrao o indivduo observa a realidade e


dela abstrai entidades, aes, etc, consideradas
essenciais para uma aplicao, excluindo todos os
aspectos julgados irrelevantes
A abstrao a eliminao do irrelevante e a
amplificao do essencial (Robert C. Martin)
A abstrao deve ser sempre feita com algum
objetivo. Este objetivo determina o que , e o que
no importante
10

POO - ABSTRAO

Exemplo:
Fotografia por satlite (imagem da
realidade), despida de alguns aspectos (por
exemplo, cor, movimento)

11

POO - CLASSE

Cada classe deve representar um ator do sistema, um


conceito a ser modelado e implementado:
Exemplos: Pessoa, Veculo, Janela, Data, Hora

Bblia

Dicionrio

Relatrio

Livro
12

POO - CLASSE

CASA
13

EXERCCIO
Tendo como base o texto a seguir, defina os atores principais
(as classes) do sistema
Considere um sistema de gerncia de um berrio, que deve
cuidar do controle de escalas de enfermeiras e mdicos. E
tambm o controle dos medicamentos de cada beb

14

CLASSE - ATRIBUTOS
Atributos representam um conjunto de informaes, ou seja,
elementos de dados que caracterizam um ator do sistema
Uma classe descrita por atributos

ATRIBUTOS:
raa
cor
pedigree
idade

Cachorro
15

CLASSE - ATRIBUTOS
A classe Carro pode ser descrita com propriedades/

atributos tais como:

Potncia
Cilindradas
Nmero de
passageiros
Nmero de portas

16

EXERCCIO
Tendo como base o texto a seguir, defina os atores principais (as
classes) do sistema e seus atributos
Considere um sistema de gerncia de um berrio, que deve
cuidar do controle de escalas de enfermeiras e mdicos. E tambm
o controle dos medicamentos de cada beb

17

CLASSE - MTODOS
Mtodos so aes que a classe disponibilizar
Uma classe descrita por seus mtodos

MTODOS:
latir()
alimentar()
reproduzir()
brincar()

Cachorro
18

CLASSE - MTODOS
Uma classe descrita por seus mtodos
Carro: acelerar(), frear(),
dispararAirBag()
Livro: emprestar(), devolver()

Ser Humano: respirar(),


alimentar()

19

EXERCCIO
Tendo como base o texto a seguir, defina os atores principais (as classes)
do sistema, seus atributos e mtodos
Considere um sistema de gerncia de um berrio, que deve cuidar do
controle de escalas de enfermeiras e mdicos. E tambm o controle dos
medicamentos de cada beb

20

POO - CLASSE
Uma classe descreve um conjunto de elementos/objetos
com:
Propriedades/atributos semelhantes
Comportamentos/operaes/mtodos semelhantes

Domnio: Loja
Cliente
nome
endereo

Venda
produto
dataVenda

incluir()
alterar()
excluir()
imprimir()

registrar()
calcularComisso
imprimirNota()

Vendedor
nome
grauVenda
incluir()
alterar()
excluir()
imprimir()

Classe
Atributos

Mtodos

21

DADOS WEBOGRFICOS
Os dados encontrados em um registro de log, de maneira
geral, contm informaes tais como:
Host: O nome de domnio do cliente quando o servio de
DNS reverso estiver habilitado; em caso contrrio,
registrado o seu endereo IP
Referrer: Indica a origem ou referenciador, e informa
como algum chegou no site
- Uma URL, direto do bookmark
- De um link clicado, escondido sob um banner
- De um portal de pesquisa, onde ele procurou por uma
palavra-chave, ou assunto. Neste caso, a string de
pesquisa ser gravada tambm
22

DADOS WEBOGRFICOS

http://mappa.mundi.net/

23

DADOS WEBOGRFICOS

http://mappa.mundi.net/
24

NOTAO DE CLASSES

Uma classe representada graficamente como um


retngulo:
NomeDaClasse
Nome da classe
Atributos
Atributos
Operaes/Mtodos
Operaes

25

POO - CLASSE
Casa
qdadePorta
qdadeSala
qdadeQuarto
localizao

CASA

reformar()
limpar()
pintar()
mobiliar()

26

EXERCCIO
Escreva
um
modelo Escreva
um
modelo
orientado
a
objetos
orientado
a
objetos
(classe,
atributos
e
(classe,
atributos
e
comportamento)
para
comportamento)
para
descrever um ser humano
descrever um carro

27

EXERCCIO
Tendo como base o texto a seguir, defina os atores principais (as classes)
do sistema, seus atributos, mtodos e relacionamentos
Considere um sistema de gerncia de um berrio, que deve cuidar do
controle de escalas de enfermeiras e mdicos. E tambm o controle dos
medicamentos de cada beb

28

POO - OBJETO/INSTNCIA

Instanciao

Um objeto (instncia) um indivduo de uma classe

O processo da criao de um indivduo denominado


instanciao
29

Classe

Indivduo

Funcionrio

Abravanel

Cssia

Instanciao

POO - OBJETO/INSTNCIA

30

POO - OBJETO/INSTNCIA
CLASSE

Estudante
de
Graduao

INSTANCIAO

Jos

Maria

OBJETO, INDIVDUO, INSTNCIA


31

INSTANCIAO

Uma classe pode ser vista como uma


FBRICA DE OBJETOS
aumentar()

Classe
Crculo

crculo1

mostrar()
X
Y
RAIO

2
3
10

Instncias da
classe
Crculo

mover()

7
1
4

crculo2

32

INSTANCIAO

Objetos so concretizaes de uma classe

Classe

Objetos

Mtodos

Um objeto

Estrutura
de dados

Objetos de
classe tm:
Atributos
Mtodos

uma

33

INSTANCIAO

Objeto da classe ContaBancaria

Mtodos

Um objeto

Estrutura
de dados

34

INSTANCIAO

Objetos do tipo Aluno


Classe
Aluno
atributos
mtodos

35

INSTANCIAO

Instanciao o ato de criar


um objeto a partir de uma
classe
Do ponto de vista
computacional, a
instanciao corresponde
alocao de memria
a reserva de uma poro
de memria para guardar
valores dos atributos que
descrevem um objeto de
uma certa classe
36

INSTANCIAO

Classe: modelo abstrato de um objeto


Instncia: um objeto concreto da classe
Instanciao: ato de criar um objeto

37

ESTADO DE UM OBJETO

Atributos: definem as caractersticas do objeto


Atributos so definidos na classe, e somente
tero valores concretos quando o objeto existir
Cada objeto possui seu prprio conjunto de
atributos, e portanto seu prprio estado
O conjunto de atributos de um objeto define o
estado deste objeto

38

ESTADO DE UM OBJETO
Carro
cor
ano
combustivel
airBag
acelerar()
frear()

Estado do objeto 'conversvel':


cor: vermelha
ano: 2000
combustvel: lcool
airBag: true

trocarMarcha()
contarKm()

Estado do objeto 'fusca':


cor: rosa
ano: 1970
combustvel: gasolina
airBag: false
39

ESTADO DE UM OBJETO
Pessoa
nome
idade
lingua
altura
respirar()
andar()
comer()
reproduzir()

Estado do objeto 'pes1':


nome: Ita
idade: 50
lingua: Tupi-Guarani
altura: 1.80
Estado do objeto 'pes2':
nome: Carlos
idade: 40
lingua: Portugus
altura: 1.90
40

ESTADO DE UM OBJETO

Estados de um objeto da classe ContaBancaria

41

ESTADO DE UM OBJETO
Cor

Classe Mvel

Peso
Dimenses
Localizao
Custo

Atributos
(Propriedades)

herda
Cadeira
42

COMPORTAMENTO DE UM OBJETO

Nos mtodos esto implementados os processos


disponibilizados pelos objetos (instncias) da classe
Permitem que objetos de uma classe realizem
tratamento de dados, clculos, comunicao com
outros objetos e todo procedimento necessrio
Carro
<Atributos>

+abrirPorta()
+fecharPorta()
+ligar ()
- contarKm()

Mtodo
pblico

Mtodo
privado
43

COMPORTAMENTO DE UM OBJETO

Quando um objeto executa um servio atravs de


um mtodos, dizemos que ele apresenta um
determinado comportamento
O comportamento de um objeto definido por seus
mtodos
Carro
<Atributos>

+abrirPorta()
+fecharPorta()
+ligar ()
- contarKm()

+ : pblico
- : privado

44

COMPORTAMENTO DE UM OBJETO
Carro
cor
ano
combustivel
airBag
acelerar()
frear()

Comportamento do objeto
'conversvel':
+
+
+
-

acelerar()
frear()
trocarMarcha()
contarKm()

trocarMarcha()
contarKm()

Comportamento do objeto
'fusca':
+
+
+
-

acelerar()
frear()
trocarMarcha()
contarKm()
45

COMPORTAMENTO DE UM OBJETO
Pessoa
nome
idade
lingua
altura
respirar()
andar()
comer()
reproduzir()

Comportamento do objeto 'pes1':


- respirar()
- andar()
- comer()
- reproduzir()
+ criarFamlia()
Comportamento do objeto 'pes1':
- respirar()
- andar()
- comer()
- reproduzir()
+ criarFamlia()
46

COMPORTAMENTO DE UM OBJETO
Cor

Classe
Mvel

vender()

Peso

consertar()

Dimenses

emprestar()
Localizao
Custo

Atributos
(Propriedades)

herda
Operaes (Servios e
Mtodos)
47

TROCA DE MENSAGENS
Objetos comunicam entre si atravs de mensagens que
emitem e recebem

Emissor

Receptor

Mensagem o mecanismo atravs do qual os objetos se


comunicam, invocando os mtodos desejados
O atendimento de uma mensagem envolve a execuo de
algum mtodo
48

TROCA DE MENSAGENS
objeto
mundo
externo

mensagem
executa
mtodo
[ resultado ]

A mensagem especifica o que deve ser feito: dispara a


execuo de um mtodo no objeto que recebe a
mensagem
atravs de mensagens que os objetos interagem (se
comunicam) em um programa
49

TROCA DE MENSAGENS
Editor

Mensagem: impresso

Parmetros:
arquivo
tamanho do papel
margens
orientao do papel

Quem envia a mensagem, solicitando a execuo de


algum mtodo, no necessita saber como o receptor ir
tratar esta mensagem
Deve apenas conhecer o resultado final do tratamento, e o
que necessrio informar para obt-lo
50

TROCA DE MENSAGENS
Quando uma mensagem enviada deve-se especificar:
um emissor
um receptor
uma requisio de servios
parmetros (se necessrio)
Editor

Mensagem: impresso

Parmetros:
arquivo
tamanho do papel
margens
orientao do papel
51

TROCA DE MENSAGENS
Caso
o
servio
solicitado
possa
ser atendido, o
receptor aceita e
responde

mensagem,
ativando o mtodo
correspondente
Receptor

Emissor

Caso o servio no
possa ser atendido, o
emissor notificado e
o receptor no realiza
nenhum
processamento

Emissor

Receptor

52

public class Aluno


{
String nome;
String curso;
public void pedirLivroEmprestado()
{
definir o livro;
bibliotecariaCarla.emprestarLivro(nomeDoLivro);
}
public void devolverLivro()
{ //corpo do mtodo
}
public void fornecerInfoSobreLivro( String nome)
{ //corpo do mtodo
}
}

53

public class Bibliotecaria


{
String nome;
String funcao;
public void emprestarLivro(nomeDoLivro)
{
consultar informaes do aluno;
se (aluno OK)
{
pegar livro;
entregar ao aluno;
}
seno
{ aluno.fornecerInfoSobreLivro(nomeDoLivro);
}
public void cadastrarLivro() {}
}

54

public class BibliotecaAberta


{
public static void main ( String args[])
{
Aluno aluno1 = new Aluno();
Aluno aluno2 = new Aluno();
Bibliotecaria bib1 = new Bibliotecaria();
aluno1.nome = Joo da Silva;
aluno1.curso = Cincia da Computao;
aluno2.nome = Mrcia Moreira;
aluno2.curso = Sociologia;
bib1.nome=Renata Moraes;
bib1.funcao=Assistente;
aluno1.pedirLivroEmprestado(Java: Introduo);
aluno2.pedirLivroEmprestado(Filosofia);
}
}

55

S-ar putea să vă placă și