Académique Documents
Professionnel Documents
Culture Documents
Ricardo Sobjak
Introduo
A ideia fundamental da programao orientada a objetos que toda estrutura de dados utilizada em um programa deve estar intimamente associada s operaes que realizam o acesso a ela, e vice-versa.
O paradigma da OO baseado na construo de sistemas a partir de componentes reutilizveis, chamados de classes. Uma classe representa um conjunto de objetos similares.
As bases da OO
A tecnologia de objetos apresenta componentes chaves que fundamentam a mudana de enfoque no processo de modelagem e desenvolvimento de aplicaes, trazendo benefcios intrnsecos filosofia [FURLAN, 1998].
Programao estrutura: estruturas de controle (sequencial, condicional e repetitiva), modularizao, tipos abstratos de dados
POO: classes, objeto, herana (reutilizao de cdigo), polimorfismo
Mudana de Enfoque
Enfoque tradicional de modelagem
construo de sistemas de informao baseado na compreenso desse sistema como um conjunto de programas que, por sua vez, executam processos sobre os dados; programa = estrutura de dados + algoritmo.
Mudana de Enfoque
Enfoque de modelagem por objetos
observar o mundo como uma coletnea de objetos que interagem entre si, apresentam caractersticas prprias que so representadas pelos seus atributos (dados) e operaes (processos); classe = atributos + operaes.
Programa Processos
Classe Atributos
Dados
Operaes
Foco em Sistema
Foco em Objeto
Abstrao
Encapsulamento
Modularidade
Hierarquia
Orientao a Objetos
Abstrao
Uma forma de do ser humano lidar com a complexidade das entidades do mundo real; As pessoas normalmente constroem modelos mentais para representar das entidades do mundo real:
Os modelos so mais simples; Possuem apenas o conhecimento relevante das entidades do mundo real.
Abstrao
Definio:
o princpio de ignorar aspectos no relevantes de um assunto, segundo a perspectiva de um observador, tornando possvel uma concentrao maior nos aspectos principais do mesmo.
Abstrao
Abstrao
Abstrao de dados: defini um tipo de dados conforme as operaes aplicveis aos objetos deste tipo; Abstrao de procedimentos: define um operao realizada por um objeto como uma entidade nica;
Abstrao x Representao
Por um processo de representao este modelo conceitual pode, ento, ser materializado segundo alguma conveno (um desenho, uma maquete, um texto, um diagrama, etc). No caso especfico da informtica, as representaes mais convencionais so as linguagens de programao e as notaes auxiliares na forma de diagramas e figuras.
Abstrao x Representao
Encapsulamento
No mundo real, um objeto pode interagir com outro sem conhecer o funcionamento interno;
Encapsulamento
Definio:
Consiste na separao dos aspectos externos de um objeto, acessveis por outros objetos, de seus detalhes internos de implementao, que ficam ocultos dos demais objetos
A interface de comunicao de um objeto deve ser definida de forma a revelar o menos possvel sobre o seu funcionamento interno
Encapsulamento
Abstrao e Encapsulamento so conceitos complementares:
Abstrao: enfoca no comportamento observvel de um objeto; Encapsulamento: enfoca a implementao que origina esse comportamento (ocultamento das informaes);
Encapsulamento
Interface do objeto: operaes que permitem utilizar o objeto; Os usurio tm o conhecimento das operaes que o objeto realiza e no como elas esto implementadas.
Encapsulamento
Vantagens:
Facilita a reutilizao de objetos; Garantir a estabilidade aos sistemas;
Modularidade
uma propriedade de sistemas decompostos em um conjunto de mdulos coesos e fracamente acoplados Modulariedade crucial para se obter reusabilidade e extensibilidade; Um objeto prov uma fronteira clara em torno de uma abstrao e o encapsulamento e a modulariedade provem barreiras em torno dessas abstraes
Modularidade
Hierarquia
Um conjunto de abstraes frequentemente forma uma hierarquia e, pela identificao dessas hierarquias, possvel simplificar significativamente o entendimento sobre um problema Hierarquia um forma de arrumar as abstraes;
Hierarquia
Maior abstrao
Veculo
Martimo
Terrestre
Areo
4 rodas
2 rodas
Avio
Helicptero
Carro
Caminho
Moto
Menor abstrao
Conceitos bsicos
Objetos:
Estado; Comportamento; Identidade.
Mensagens e Mtodos.
Objetos
So os elementos que existem no mundo real e interagem entre si; Objetos representam entidades abstratas ou concretas, exemplos:
Entidade Fsica: caminho, carro, bicicleta, televiso.
Objetos
Objetos possuem:
Estados (informaes); Comportamento: expresso por um nmero de operaes para examinar ou alterar seu estado; Identidade nica;
Objetos
Objetos
Estado:
Compreende o conjunto de suas propriedades, associadas a seus valores correntes em um determinado instante de tempo; O estado de um objeto diz respeito ao seus atributos e aos valores a eles associados.
Objetos
Estado:
Atributo uma propriedade nomeada de um tipo. A definio de dados ou atributos idntica descrio dos campos de um registro, isto , uma lista de identificadores com tipos associados. Atributo define o estado de um objeto.
Objetos
Comportamento
A abstrao de um objeto caracterizada por um conjunto de servios ou operaes, que outros objetos, ditos clientes, podem requisitar; Operao so utilizadas para:
Recuperar a informao de estado de um objeto; Manipular a informao de estado de um objeto;
Objetos
Comportamento
Comunicao entre dois agentes feita atravs da troca de mensagem; O conjunto de mensagens a que um objeto pode responder representa o seu comportamento;
Objetos
Identidade
Cada objeto tem um identidade prpria, que lhe inerente; Cada objeto dispe de um identificador nico pelo qual pode ser referenciado.
Objetos
Objeto
Operao 1
Carro
Operao 6
Operao 2
Atributos (Dados)
Operao 5 Operao 3
Operao 4
Objetos
Cada objeto tem sua prpria identidade, mesmo se os estados so idnticos
Professor nome: Clair Silva admisso: 01/02/2012 cargo: EBBT regime: 40 horas rea: Informtica lanarNotas() escolherDisciplina() tirarFrias() mudarRegime() Professor nome: Clair Silva admisso: 01/02/2012 cargo: EBBT regime: 40 horas rea: Informtica lanarNotas() escolherDisciplina() tirarFrias() mudarRegime()
Objetos
Exemplo: Estado? Comportamento? Identidade?
Objetos
Exemplo:
Estado: vermelho Identidade: semforo da rua x no cruzamento x e y Comportamento:
Classes
comum encontramos no mundo real, diferentes objetos (mas, com a mesma estrutura e o mesmo comportamento) desempenhando um mesmo papel; Ex.: Duas cadeiras, pessoas em um sociedade, ...
Definies de Classes:
i. um modelo que descreve a estrutura e o comportamento que ser assumido por um objeto;
ii. Descreve um conjunto de objetos com as mesmas propriedades (atributos), o mesmo comportamento (operaes) , os mesmos relacionamentos com outros objetos e a mesma semntica;
Classes x Objetos
Os objetos so instncias de uma classe.
Objeto: instncia de classe (tempo de execuo) Classe: descrio esttica
Objetos instanciados da classe Casa Classe Casa
Exerccio prtico 1
Modele uma data. Uma data formada por um dia, ms, ano, hora, minuto e segundo.
Exerccio prtico 2
Faa a abstrao de uma classe que represente uma lmpada, a qual possui o estado acesa ou apagada. As operaes sobre ela so ligar e desligar. No mundo real, para saber o seu estado basta apenas olhar para a lmpada, mas no ambiente computacional precisamos de uma operao para saber qual o seu estado.
Exerccio prtico 3
Faa a abstrao de uma classe de cachorro. Os atributos dele basicamente so o nome, nascimento, cor, raca e dono. Defina as aes que o cachorro basicamente executa, como morder, comer, latir...
Faa a abstrao de uma classe que represente o dono do cachorro, contendo os atributos nome e data de nascimento. As aes que o dono executa basicamente so: andar, levar o co para passear...
Crie uma pessoa, coloque seu nome e idade iniciais, faa alguns aniversrios (aumentando a idade) e imprima seu nome e sua idade.
Crie uma porta, abra e feche a mesma, pinte-a de diversas cores, altere suas dimenses e use o mtodo estaAberta para vericar se ela est aberta.
Crie uma casa e pinte-a. Crie trs portas e coloque-as na casa; abra e feche as mesmas como desejar. Utilize o mtodo quantasPortasEstaoAbertas para imprimir o nmero de portas abertas.