Vous êtes sur la page 1sur 46

Programao Orientada a Objetos

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.

Enfoque baseado em sistema versus enfoque baseado em objeto

Programa Processos

Classe Atributos

Dados
Operaes

Foco em Sistema

Foco em Objeto

Princpios bsicos do Paradigma Orientado a Objetos

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 DA ORIENTAO A OBJETOS

Conceitos bsicos
Objetos:
Estado; Comportamento; Identidade.

Classes e Instncias; Mecanismo de Estruturas:


Ligao e Associaes; Composio ou Agregao; Generalizao/Especializao

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.

Entidade Conceitual: processo qumico, matrcula, reserva de avio.


Entidade de Software: lista encadeada, arquivo.

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;

As operaes tambm so chamada de mtodos.

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

cor: motor: velocidade: ...


ligar() andar() virar() ...

Operao 4

Os dados esto encapsulados, so acessados atravs do mtodos!

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...

Exerccio prtico 4 parte 1


Modele um funcionrio. Ele deve ter o nome do funcionrio, o departamento onde trabalha, seu salrio (double), a data de admisso (String), seu RG (String) e um valor booleano que indique se o funcionrio est na empresa no momento ou se j foi embora (ativo). Crie um mtodo bonifica que aumenta o salrio do funcionrio de acordo com o parmetro passado como argumento. Crie, tambm, um mtodo demite, que no recebe parmetro algum, s modica o valor booleano indicando que o funcionrio no trabalha mais aqui. A ideia aqui apenas modelar, isto , s identique que informaes so importantes e o que um funcionrio faz. Desenhe no papel tudo o que um Funcionario tem e tudo que ele faz.

Exerccio prtico 4 parte 2


Crie um mtodo mostra(), que no recebe nem devolve parmetro algum e simplesmente imprime todos os atributos do nosso funcionrio. Dessa maneira, voc no precisa car copiando e colando um monte de System.out.println() para cada mudana e teste que zer com cada um de seus funcionrios, voc simplesmente vai fazer:
Funcionario f1 = new Funcionario(); //brincadeiras com f1.... f1.mostra();

Exerccio para praticar 1


Classe: Pessoa
Atributos: nome, idade. Mtodo: void fazAniversario()

Crie uma pessoa, coloque seu nome e idade iniciais, faa alguns aniversrios (aumentando a idade) e imprima seu nome e sua idade.

Exerccio para praticar 2


Classe: Porta
Atributos: aberta, cor, dimensaoX, dimensaoY, dimensaoZ Mtodos: void abre(), void fecha(), void pinta(String cor), boolean estaAberta()

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.

Exerccio para praticar 3


Classe: Casa
Atributos: cor, porta1, porta2, porta3 Mtodos: void pinta(String cor), int quantasPortasEstaoAbertas()

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.

Vous aimerez peut-être aussi