You are on page 1of 31

CAPTULO I CONCEITO GERAL DA POO

1)
2) 3) 4) 5) 6)

O que so modelos?
Exemplos de modelos O que POO? Encapsulamento, Herana e Polimorfismo Classes, Objectos, Instncias e Referncias Exerccios Prticos

O que so Modelos?

importante e necessrio entendermos que, programas de computador processa dados. Neste contexto, o paradigma de Programao Orientada a Objectos considera que os dados a serem processados e os mecanismos de processamento destes dados devem ser considerados em conjunto. Portanto conclui-se que: Modelos so representaes simplificadas de objectos, pessoas, itens, tarefas, processos, conceitos, etc., utilizados comumente por pessoas no seu dia-a-dia, independente do uso de computadores.

14 de Junho de 2013

Programao Orientada por Objectos

Os modelos possuem: - Dados e Operaes

Os dados so informaes que identifica o objecto de um determinado modelo.

As operaes, so listas de comandos que processa os dados do prprio modelo.

Podem existir modelos que contenham somente dados ou Operaes.

14 de Junho de 2013

Programao Orientada por Objectos

Exemplos de Modelos
Eu sou um Modelo

Tenho Dados e Operaes

14 de Junho de 2013

Programao Orientada por Objectos

Modelo: CARRO

Nome: Carro Matricula Cor Ano Acelerar Travar Curvar Dados ou Atributos Operaes ou Mtodos

Note que, quando falamos de CARRO no estamos a dizer de que carro se trata, mas sim de carro de uma forma geral(abstrao).

14 de Junho de 2013

Programao Orientada por Objectos

Modelo:PESSOA

Nome: PESSOA Nome Idade Sexo Andar Falar Comer Olhar

14 de Junho de 2013

Programao Orientada por Objectos

Importantssimo
A simplificao inerente aos modelos em muitos casos, necessria: Isto , dependendo do coontexto, algumas informaes devem ser ocultas ou ignoradas.

Por exemplo: A representao das informaes sobre uma pessoa pode ser feita de maneira diferente dependendo do contexto, como veremos abaixo:
Pessoa como Empregado de Empresa Pessoa como Pacinte de uma clnica Mdica Pessoa como Aluno de uma Instituio Escolar Cada modelo referenciado acima pode ter seus dados prprios e suas operaes, mas nunca deixaro de ter os dados e operaes da Classe PESSOA (Super Modelo ou Modelo Me)
14 de Junho de 2013 Programao Orientada por Objectos 7

A criao e o uso de modelos, uma tarefa


natural e a extenso deu desta abordagem ao na

programao

origem

paradigma

denominado Programao Orientada a Objectos


(POO).

14 de Junho de 2013

Programao Orientada por Objectos

O que POO?
um paradigma de programao de computadores onde se

utilizam classes e objectos, criados a partir dos modelos


descritos anteriormente, para representar e processar dados utilizando programas de computadores.

Tal como a casa, precisa de alicerce para no cair; A POO possui trs pilares fundamentais que so: Encapsulamento, Herana e Polimorfismo.

14 de Junho de 2013

Programao Orientada por Objectos

Encapsulamento
Vimos que modelos podem conter dados para representao das informaes ou dados relactivos ao que se deseja modelar e operaes para manipulao destes dados.

Em muitos casos ser desejvel que os dados no possam ser acessados ou utilizados directamente, mas somente atravs

das operaes cuja especialidade ser a manipulao destes


Dados.

14 de Junho de 2013

Programao Orientada por Objectos

10

Por Exemplo: vamos considerar uma cmera fotogrfica automtica. Quando um utilizador da cmera clica o boto para tirar uma foto, diversos mecanismos entram em aco que fazem com que a velocidade e abertura apropriada do obturador sejam selecionadas, levando em conta o tipo do filme e as condies de iluminao. Para o utilizador, os detalhes de como os dados como velocidade, tipo de filme e iluminao so processados so irrelevantes, o que interessa a ele que a foto seja tirada. Isto porque, o mecanismo de seleco da cmera oculta os dados (iluminao, tipo de filme, etc.) e a maneira com que estes so processados, no deixando que o utilizador modifique os dados vontade.

14 de Junho de 2013

Programao Orientada por Objectos

11

Ento pode-se concluir que: Encapsulamento capacidade de ocultar dados dentro de modelos, permitindo que somente operaes especializadas ou dedicadas manipulem estes dados ocultos

Modelos que encapsulam os dados possibilitam a criao de


programas com menos erros e mais clareza.

Encapsulamento de dados em modelos deve ser um dos principais objetivos do programador que utiliza, linguagens orientadas a objectos (LOO).
14 de Junho de 2013 Programao Orientada por Objectos 12

Herana
o mecanismo que um modelo adopta para herdar os dados ou operaes de outro modelo.

Voltando ao nosso exemplo do modelo PESSOA, assume-se

que, o empregado, o Pacinte e o Aluno so modelos que


herdam do modelo PESSOA.

Nos prximos capitulos falaremos melhor de Encapsulamento, Herana e Polimorfismo

14 de Junho de 2013

Programao Orientada por Objectos

13

Classes, Objectos, Instncias e Referncias


Programadores que utilizam o paradigma de POO criam e fazem uso de objectos a partir de classes, que so relacionadas diretamente com os modelos descritos anteriormente.

Classes so estruturas das linguagens de programao orientadas a objectos para conter, para determinado modelo, os dados que devem ser representados e as operaes que devem ser efetuadas com estes dados. Cada classe deve ter um nome que seja facilmente associvel ao modelo que a classe representa.
14 de Junho de 2013 Programao Orientada por Objectos 14

Classes so escritas com os recursos e regras da LOO para implementao dos modelos, mas em muitos dos casos as classes so somente moldes ou formas que representam os modelos abstratamente. Para representao de dados especficos usando classes deste tipo ser

necessria a criao de objectos ou instncias desta classe.

Um objecto ou instncia uma materializao da

classe, e assim pode ser utilizado para representar dados


e executar operaes.

14 de Junho de 2013

Programao Orientada por Objectos

15

Para que os objectos ou instncias possam ser manipulados, necessria a criao de referncias a estes objectos, que so basicamente variveis do tipo da classe.

14 de Junho de 2013

Programao Orientada por Objectos

16

Fazendo uma analogia, uma classe poderia ser considerada como sendo uma planta de prdio, que descreve o prdio mas no corresponde fisicamente a ele, enquanto que os prdios construdos de acordo com aquela planta seriam as instncias ou objectos.

Igualmente, uma ficha de matrcula em branco, sem conter informaes, seria uma classe enquanto que vrias fichas daquele tipo, preenchidas, corresponderiam instncias ou

objectos daquela classe.

14 de Junho de 2013

Programao Orientada por Objectos

17

Os Dados contidos em uma classe so conhecidos como campos ou atributos daquela classe. Cada campo deve ter um nome e ser de um tipo.

As Operaes contidas em uma classe so chamadas de mtodos desta classe

14 de Junho de 2013

Programao Orientada por Objectos

18

EXERCCIOS PRTICOS
1)

Lmpada incandescente

Consideremos uma lmpada incandescente comum e um modelo para


represent-la. Esta lmpada tem um dado bsico, que , o seu estado (ligada ou desligada). As operaes que podemos efectuar nesta lmpada tambm so simples: podemos lig-la ou deslig-la. O acto de ligar a lmpada equivale a modificar seu estado para ligada, enquanto que desligar a lmpada significa modificar seu estado para desligada. Para saber se uma lmpada est ligada ou desligada podemos pedir que uma operao mostre o valor do estado. Nota-se neste exemplo que, a modelagem de entidades do mundo real pode ser muito diferente daquilo que vai ser utilizada em programas de computador: no mundo real, para saber se a lmpada est ligada ou no basta observ-la, enquanto que na modelagem para uso em um computador precisamos de uma operao para saber se a lmpada est ou no ligada.

14 de Junho de 2013

Programao Orientada por Objectos

19

Lampada estadoLampada acende() apaga() mostraEstado()

possvel observar que alguns dados da lmpada como consumo em watts, cor e tamanho foram deixados de lado. A deciso de que dados e operaes devem pertencer a um modelo dependem da abrangncia e escopo deste modelo: se as lmpadas a serem representadas por este modelo fossem itens venda em um supermercado, certamente os dados estado e operaes acende, apaga e mostraEstado no seriam utilizados.

14 de Junho de 2013

Programao Orientada por Objectos

20

Modelo Lmpada inicio do modelo dado estadoLampada; // indica se est ligada ou no operao acende() // acende a lmpada inicio estadoLampada = aceso; fim operao apaga() // apaga lmpada inicio estadoLampada = apagado; fim
14 de Junho de 2013 Programao Orientada por Objectos 21

operao mostraEstado() // mostra o estado da lmpada inicio se ( estadoLampada == aceso ) imprime A lampada esta acesa; senao imprime A lampada no esta acesa; fim fim Fim do modelo
14 de Junho de 2013 Programao Orientada por Objectos 22

Soluo: Classe

14 de Junho de 2013

Programao Orientada por Objectos

23

2) Uma conta bancria simplificada

O modelo deste exerccio representa uma conta bancria simplificada, que somente representa o nome do utente da conta, o saldo da conta e se a conta especial ou no. Se a conta for especial, o utente ter o direito de retirar mais dinheiro do que tem no saldo (ficar com o saldo negativo). Aspectos prticos encontrados em contas de banco reais (senhas, taxas, impostos, etc.) foram deixados de lado em nome da simplicidade.

ContaBancariaSimplificada Nome Saldo contaEspecial abreConta(nome,deposito,especial) abreContaSimples(nome, deposito) deposito(valor) debito(valor) mostraDados()
14 de Junho de 2013 Programao Orientada por Objectos 24

Soluo: Pseudocdigo

14 de Junho de 2013

Programao Orientada por Objectos

25

Soluo: Classe

14 de Junho de 2013

Programao Orientada por Objectos

26

3) Registo acadmico de aluno


Consideremos agora como representar os dados acadmicos bsicos de um aluno de uma escola em

um modelo. Este modelo pode ser considerado como


uma ficha de matrcula ou identificao do aluno na escola.

Modelo? Pseudocdigo? Classe ?

14 de Junho de 2013

Programao Orientada por Objectos

27

4) Escreva um modelo Empregado que represente um

empregado de uma empresa qualquer. Considere os


seguintes dados: nome, departamento,

horasTrabalhadasNoMs e salrioPorHora. E e que

ao menos tenha as operaes mostraDados e


calculaSalrioMensal sejam implementadas.

Modelo?
Pseudocdigo? Classe ?

14 de Junho de 2013

Programao Orientada por Objectos

28

5) Escreva uma classe ModeloDeComputador que


encapsule valores que definam a configurao de um microcomputador (tipo de processador,

memria RAM, tamanho do disco rgido, tamanho do monitor). Esta classe deve ter um mtodo calculaPreo que calcule o preo do computador como sendo a soma do custo de seus

componentes:

14 de Junho de 2013

Programao Orientada por Objectos

29

Placa-me: 20 000 Kz.


Opes de processadores: 600Mhz a 19 000 Kz, 800Mhz a 22 000 Kz, 933Mhz a 25 000Kz.

Opes de memria: 128, 256, 384 ou 512 Mb, cada 128Mb custa 3000 Kz.

Opes de disco rgido: 40 Gb a 9000 Kz, 80 Gb a


12000 Kz, 120 Gb a 15000 Kz.

Opes de monitor: 15 polegadas a 18 000 Kz, 17 polegadas a 20 000 Kz.

14 de Junho de 2013

Programao Orientada por Objectos

30

Prximos captulos

Construtores e Sobrecarga Campos e Mtodos Estticos Encapsulamento, Herana e Polimorfismo

UML e Java

14 de Junho de 2013

Programao Orientada por Objectos

31