You are on page 1of 65

INTRODUO ORIENTAO A OBJETOS

Copyright, 1999 Gilson Tavares. 1

O QUE ORIENTAO A OBJETOS?

Um paradigma de programao que permite representar programaticamente elementos do espao de problemas.

CONTEXTUALIZANDO O PROBLEMA

que leva um programador a mudar do paradigma procedimental para um novo?


Complexidade crescente dos sistemas y Limitaes da capacidade humana de compreenso de um sistema com um todo.
y

PARADIGMA

Em
y

Cincia da Computao:

Paradigmas explicam como os elementos que compem um programa so organizados e como integram entre si.

PARADIGMA DE ORIENTAO A OBJETOS


O

paradigma de Orientao a Objetos tem vrias caractersticas marcantes:


Alta reutilizao de software, y Desenvolvimento sempre evolutivo, y Construes complexas a partir de construes simples, y Manuteno tende a ser simples.
y

POR QUE USAR ORIENTAO A OBJETOS?

orientao a objetos promete, quando bem utilizada, oferecer ganhos em termos de rapidez, custo, confiabilidade, flexibilidade e facilidade de manuteno.

POR QUE ORIENTAO A OBJETOS?


Paradigma Facilidade

nico, na reutilizao da arquitetura e do

software,

Modelos

que refletem o mundo real. de alterao.

Estabilidade

PARADIGMA NICO
A

nomenclatura e os mtodos utilizados na produo de um software orientado a objetos permanecem praticamente os mesmos. analistas, projetistas, usurios, etc. comunicam-se utilizando praticamente a mesma linguagem.
8

Programadores,

FACILIDADE NA REUTILIZAO DA ARQUITETURA E DO SOFTWARE

software produzido encapsulado em unidades bsicas denominadas classes. classes possuem semnticas que podem ser reaproveitadas em novos softwares.

Essas

FACILIDADE NA REUTILIZAO DA ARQUITETURA E DO SOFTWARE

Exemplo:

Uma classe denominada Funcionrio poderia ser utilizada


em um controle de departamento pessoal y em um software de comisses adotado pela mesma empresa comissionar seus funcionrios.
y

10

MODELOS QUE REFLETEM O MUNDO REAL

modelo permite um entendimento facilitado e uma manuteno eficaz.

11

ESTABILIDADE DE ALTERAO

manuteno e o impacto causados por alteraes em requisitos e novas regras de negcio ficam bastante minimizados pelo uso de tecnologia de objetos.

12

CONCEITO DE ORIENTAO A OBJETOS

No Os

mundo real tudo objeto!

objetos se relacionam entre si de diversas maneiras.

13

CONCEITOS FUNDAMENTAIS

Conceitos

Estruturais Conceitos Composicionais Conceitos Comportamentais

14

CONCEITOS ESTRUTURAIS

tipo um papel desempenhado no mundo real e a interface a sua especificao.

objeto a representao de uma entidade do mundo real e a classe sua generalizao.

15

CONCEITOS COMPOSICIONAIS

Instncias

so a materializao de uma classe.

Atributos

caracterizam a classe e mantm o estado da instncia. definem o comportamento da classe e procedimentos que a instncia executa.
16

Mtodos

ELEMENTOS BSICOS EM ORIENTAO A OBJETOS

Objetos Classes Instncias

17

OBJETO
Um

objeto a entidade que realiza um tipo ou uma coleo de tipos (tipo composto) atravs de suas propriedades e comportamento. objeto representa um elemento do problema real modelado a partir dos tipos que implementa. objeto uma varivel do tipo de uma classe definida pelo usurio. Ou seja, um objeto uma instncia de uma classe.

Um

Um

18

OBJETOS

19

CLASSIFICANDO OS OBJETOS...

SERES HUMANOS ANIMAIS

20

OBJETO

Um

objeto tem estado que um elemento particular e personificado da classe. dizer que um objeto possui trs partes: estado, comportamento e identidade.

Podemos

21

OBJETO - ESTADO
O

estado de um objeto uma das condies em que ele pode existir. uma caracterstica transitria de um objeto.

Ele

normalmente muda com o decorrer do tempo e caracterizado pelos valores instantneos dos seus atributos e de suas ligaes e relacionamentos com outros objetos.

22

OBJETO ESTADO - EXEMPLO

Exemplo:

Um objeto lmpada pode ter basicamente dois estados - acesa e apagada, que s podem ser alterados atravs das aes: acender ou apagar. Tais aes fariam com que o valor do atributo de nome aceso variasse entre verdadeiro, quando a lmpada estivesse acesa e falso, quando estivesse apagada.
23

OBJETO COMPORTAMENTO

definido pelo conjunto de seus mtodos, ou seja, pelo conjunto das aes que este objeto pode executar e pela forma que ele responde s chamadas de outros objetos. seja, determina como o objeto age e reage s requisies de outros objetos.
24

Ou

OBJETO COMPORTAMENTO EXEMPLO


Exemplo:

Um objeto pessoa possui alguns comportamentos padres como comer, beber, andar, etc.
y

Se voc enviar uma mensagem para um objeto pessoa do tipo comer, ele saber como responder e executar a ao. Mas se voc mandar uma mensagem do tipo voar, esse objeto no ir responder, pois voar no faz parte de seu comportamento.

25

OBJETO - IDENTIDADE

Unicidade Um

do objeto pelo simples fato de ele existir.

objeto sempre ser nico mesmo que exista um outro objeto com os valores dos atributos iguais.

26

OBJETO - EXEMPLOS
Identidade: Telefone residencial Caractersticas:
cor azul nmero 576-0989

Identidade: nibus escolar Caractersticas:


cor amarelo placa LXY 7684 30 assentos a diesel

Comportamento:
tocar discar

Comportamento:
frear andar correr buzinar acelerar

27

OBJETO OUTRO EXEMPLO


Montagem
y

de um computador

Composto por vrios componentes:

Placa-me CPU Placa de vdeo Disco rgido Teclado, etc.



28

OBJETO OUTRO EXEMPLO (CONT.)


Cada componente bastante sofisticado, mas o usurio no precisa saber como funciona internamente. y Cada componente independente dos demais. y Para quem est montando, interessa apenas como os componentes interagem entre si:
y

O monitor funciona com essa placa? A CPU compatvel com a placa-me?


29

OBJETO - REPRESENTAO

Operaes/mtodos/interface (pblico)

Dados/propriedades/atributos (privado)
30

EXEMPLO LMPADA
Operaes: Ligar Desligar

Dados: Ligada (s/n) Potncia Voltagem

31

CLASSE

um conjunto de objetos que compartilham uma estrutura e comportamento comuns. uma abstrao para representar objetos com caractersticas e comportamentos comuns.
32

CLASSE

Uma

classe pode ser vista como uma fbrica de objetos. de uma classe so denominados instncias.
y

Objetos

Todos os objetos so instncias de alguma classe.


33

CLASSE - UMA FBRICA DE OBJETOS


Uma

fbrica de objetos
Classe Lamp Lamp 3

Lamp 1 Lamp 2

Objetos ou instncias da classe Lamp.

34

CLASSE
A

classe implementa um ou mais tipos , estabelecendo propriedades e comportamento. o aspecto genrico de um objeto. Todo objeto pertence a uma classe. classe a idia a partir do qual o objeto se concretiza. classe pode especializar e agregar outras classes para formalizar uma idia.
35

Define

Uma

CLASSE
Uma
y

classe determina um conjunto de objetos com:

Propriedades semelhantes y Comportamentos semelhantes y Relacionamentos comuns com outros objetos


Em
y

uma classe encontramos duas divises:

Estrutura: as informaes inerentes classe. y Comportamento: as operaes realizadas pela classe.

36

CLASSES - EXEMPLOS
Caractersticas: Comportamento:
tocar discar

Telefone

cor nmero discagem

Identidade: Telefone da minha casa Caractersticas:


cor: azul nmero: 576-0989 discagem: tone

Identidade: Meu celular Caractersticas:


cor: preta nmero: 99193467 discagem: tone

Comportamento:
tocar discar

Comportamento:
tocar discar

37

CLASSE

Uma
y

classe formada:

Por um nome y Por atributos y Por mtodos

38

CLASSES EXEMPLOS
Classe SerHumano NOME Nome Idade ATRIBUTOS CPF Nasce(){ .... } Estuda(){ .... } Classe Animal Espcie Idade Localizao Nasce(){ .... } Morre(){ .... }

MTODOS

39

CLASSE - EXEMPLO

Exemplo:

Uma pessoa caracterizada por uma

classe.
y

Estrutura: Nome, Endereo, Peso e Altura y Comportamento: Andar, Comer, Beber e Dormir.

40

CLASSE EXEMPLO DE CDIGO


Exemplo:

class Pessoa { String nome, endereco; float peso, altura; void correr(){ ... } void comer(){ ... } void beber(){ ... } void dormir(){ ...} }
41

CLASSE OUTRO EXEMPLO DE CDIGO


Exemplo:

class Correntista extends Cliente implements Depositante, Comprador{ Investidor investidor; Conta conta; void deposita(doublequantia) { conta.deposita(quantia); } void compra(Acao acao){ investidor.compra(acao); } }

42

PACOTES
Os

pacotes so unidades de agrupamentos de classes. so agrupadas em pacotes por vrios motivos:


Por questo de organizao, y Performance da aplicao, y Soluo de problemas de escopo de variveis, y Verticalizao de uma entidade para comercializ-la como um componente, etc.
y
43

Classes

PACOTES
Os

pacotes podem possuir subpacotes de qualquer profundidade.


y

Exemplo: Pacote Pagamento pode conter subpacotes tais como Mensalidade, Professores e Funcionrios.

Os

pacotes servem para encapsular classes.

44

INSTNCIA
Instncia

o mesmo que objeto. o ato de criar um objeto.

Instanciao Quando

instanciamos uma classe, estamos particularizando, identificando um objeto.


45

INSTNCIA

Uma

instncia tem estado, comportamento e identidade. instncia o objeto nominal criado a partir de uma classe.

46

INSTNCIA
A

classe apenas uma idia, a instncia um objeto real e operante. sistema OO em execuo composto de inmeras instncias de objetos. devem ser criadas a partir da classe que a define atravs de um mtodo chamado construtor. 47

Um

Instncias

INSTNCIA - EXEMPLO
Classificao
Classe SerHumano Nome Idade CPF Nasce(){ .... } Estuda(){ .... Objeto OBJ2 Nome=Mr.Zoo Idade=45 CPF=6786968696 Nasce(){ .... } Estuda(){ .... }
48

Instanciao

Objeto OBJ1 Nome=Mr.Jones Idade=34 CPF=4567889484 Nasce(){ .... } Estuda(){ .... }

INSTNCIA EXEMPLO DE CDIGO


Instncias

so invocadas para realizar seu trabalho a partir de referncias. cdigo Java temos o exemplo da criao de uma instncia e associao a uma referncia:
classe Cliente{ Identificacao id = new Identificacao(Jos das Couves); }

No

49

ATRIBUTOS
Atributos

so informaes de dados que pertencem a um determinado objeto. atributo uma caracterstica de uma classe.

Um

Atributos

no possuem comportamento, pois eles no so objetos.


50

ATRIBUTOS
Enquanto

na classe o atributo uma especificao, na instncia representa o estado do objeto, a prpria identidade da instncia. instncias de um objeto tm em comum a classe que define o objeto. O que diferencia as instncias entre si o valor de seus atributos. podem ser inicializados na classe e so modificados ao longo da vida til da instncia.

As

Atributos

51

ATRIBUTOS - EXEMPLO

Exemplo:

Classe: Triangulo Atributos: base, altura, angulo1, angulo 2, angulo 3

52

ATRIBUTO OUTRO EXEMPLO

Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 InformarSalrio CalcularIdade Funcionrio_Mrio Nome=Mrio S Nasc=16/02/1970 Salrio = 3.000 InformarSalrio CalcularIdade

Funcionrio Nome Nasc Salrio InformarSalrio CalcularIdade

53

ATRIBUTO EXEMPLO DE CDIGO

No

cdigo Java temos o exemplo dos atributos de uma classe:


y

classe ContaCorrente{ double saldo = 0.0; double credito = 1000.0; Correntista titular; }
54

MENSAGENS E MTODOS
Para

invocar um mtodo, deve-se enviar uma mensagem para o objeto desejado. identificar uma mensagem, deve-se:

Para
y

Identificar o objeto que receber a mensagem. y Itenficicar o mtodo que o objeto dever executar. y Passar os argumentos requeridos pelo mtodo.

55

MENSAGENS
Objetos interagem e se comunicam atravs de mensagens

Receptor (servidor) Emissor (cliente)

56

MENSAGENS - EXEMPLO
Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 InformarSalrio CalcularIdade

4000 4000

Informar Salrio?

Funcionrio Nome Nasc Salrio InformarSalrio CalcularIdade

Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 InformarSalrio CalcularIdade

Calcular Desconto?

ERRO!
57

MTODOS
as mensagens identificam os mtodos a serem executados no objeto receptor

58

MTODOS

Um

mtodo uma implementao de uma operao. uma operao sobre um objeto, definido como parte da declarao de uma classe. classe implementa o comportamento desejado para o objeto atravs de mtodos.

59

MTODOS - EXEMPLO
Atravs

dos mtodos, a instncia tem a capacidade de modificar seus atributos.

4000
Funcionrio Nome Nasc Salrio InformarSalrio CalcularIdade

Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 InformarSalrio Funcionrio_Mrio CalcularIdade Nome=Mrio S

3000 Informar Salrio?

Nasc=16/02/1970 Salrio = 3.000 InformarSalrio CalcularIdade

60

MTODO EXEMPLO DE CDIGO


No

cdigo Java vemos a especificao e a implementao de mtodos:


y

interface Conta{ void deposita(double quantia); } classe ContaCorrente implements Conta{ double saldo; void deposita(double quantia) { saldo += quantia;} void saca(double quantia) { saldo -= quantia;} }

61

EXEMPLO GERAL
 Gerenciamento de folha de pagamento:
Nome Antonio da Silva Silva Mello RG 5.000.421 7.010.421 Salrio R$ 800,00 R$ 122,00 R$ 8.000,00
62

Manoel Antonio Mello 19.000.842

EXEMPLO GERAL (CONT.)

Neste
y

exemplo, cada um dos funcionrios:

Pode ser identificado por um nmero, para manipulao pelo sistema. y Possui um estado interno, definido pela atribuio de valores a Nome, RG e Salrio.

63

EXEMPLO GERAL (CONT.)


Os
y

funcionrios poderiam estar sujeitos a:

Contratao y Demisso y Aumento de salrio


Em funo destas operaes, cada um deles poderia comportar-se de alguma maneira, inclusive com possibilidade de alterao de estado interno.
64

EXEMPLO GERAL (CONT.)


Identificao

classe Funcionrio{ Nome RG Atributos Salrio contratao(Nome,RG,Salrio) demisso() aumento(Porcentagem) Mtodos


65