Académique Documents
Professionnel Documents
Culture Documents
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
14 de Junho de 2013
Exemplos de Modelos
Eu sou um Modelo
14 de Junho de 2013
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
Modelo:PESSOA
14 de Junho de 2013
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
programao
origem
paradigma
14 de Junho de 2013
O que POO?
um paradigma de programao de computadores onde se
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
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
14 de Junho de 2013
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
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
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.
14 de Junho de 2013
13
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
14 de Junho de 2013
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
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
14 de Junho de 2013
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.
14 de Junho de 2013
18
EXERCCIOS PRTICOS
1)
Lmpada incandescente
14 de Junho de 2013
19
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
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
23
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
25
Soluo: Classe
14 de Junho de 2013
26
14 de Junho de 2013
27
Modelo?
Pseudocdigo? Classe ?
14 de Junho de 2013
28
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
29
Opes de memria: 128, 256, 384 ou 512 Mb, cada 128Mb custa 3000 Kz.
14 de Junho de 2013
30
Prximos captulos
UML e Java
14 de Junho de 2013
31