Вы находитесь на странице: 1из 21

Conceitos de Orientao a Objetos

Conceitos OO

Roteiro
Introduo Classe e objeto Mensagem Encapsulamento Herana Polimorfismo

Conceitos OO

Introduo

Programao Procedural
Paradigma de Programao Procedural
Trabalha basicamente com dados e funes. Apresenta problemas com o aumento da complexidade:
Dificuldade de manuteno Pouqussimo reaproveitamento de cdigo Nmero excessivo de funes

Crise do Software (anos 70)


Projetos estourando prazos e oramentos Softwares que no atingiam os requisitos Perda de qualidade e projetos impossveis de se gerenciar e manter

Conceitos OO

Introduo

Programao Orientada a Objetos


Introduz vrios conceitos
Classe, objeto, mensagem, encapsulamento, herana, polimorfismo.

Conceitos OO

Classe e Objeto

Classe
Define variveis e mtodos de objetos do mesmo tipo.
Variveis ou atributos: so os dados Mtodos: so as funes

Uma classe define as caractersticas de uma entidade no mundo real, de um objeto como entendemos. Reconhecimento de similaridades entre certos objetos, situaes, processos do mundo real.

Conceitos OO

Classe e Objeto

Classe
Identificao dos atributos e mtodos depende do ponto de vista
Nome Cor Aparncia - Correr - Brincar Raa Peso Tamanho - Criar - Vender

Conceitos OO

Classe e Objeto

Classe
Exemplos de Classe:

Pode ser considerada como uma Fbrica de Objetos

Conceitos OO

Classe e Objeto

Objeto
Um objeto a instncia de uma classe

Exemplo: ContaCorrente

Conceitos OO

Classe e Objeto

Objeto
No mundo OO programas so compostos de objetos que colaboram entre si para atender aos requisitos necessrios. Um objeto pode ser composto de outros objetos.
Faris

Motor Rodas

Pneu Aro Parafusos

Conceitos OO

Classe e Objeto

10

Objeto
Um objeto pode pedir a colaborao de outro objeto enviando uma mensagem. Vantagens
Maior modularizao do cdigo Auto grau de reusabilidade do cdigo Facilidade em rastrear defeitos e efetuar manuteno

Conceitos OO

Mensagem

11

Mensagem
Mensagem significa invocar um mtodo de outro objeto. A troca de mensagens forma como os objetos interagem. Possui trs componentes:
Objeto ao qual a mensagem endereada Nome do mtodo a ser executado Parmetros requeridos pelo mtodo

Conceitos OO

Mensagem

12

Exemplo de Mensagem
Funcionrio Nome Nasc Salrio InformarSalrio CalcularIdade Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 InformarSalrio CalcularIdade

Informar Salrio? 4000

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

? ERRO!

Calcular Desconto?

Conceitos OO

Encapsulamento

13

Encapsulamento
Esconde o estado interno do objeto Interao ocorre por mensagens. Os atributos de um objeto so manipulados apenas pelos mtodos do prprio objeto. Significa que outro objeto no pode manipular atributo de outro objeto. Vantagens:
Legibilidade Manutenibilidade Reuso

Conceitos OO

Encapsulamento

14

Exemplo de Encapsulamento
Sem encapsulamento
Funcionrio Nome Nasc CPF validarCPF(cpf) alteraCPF(cpf) Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 CPF=000.000.001-91 validarCPF(cpf) alteraCPF(cpf)

Feito!

Faa CPF = 01

alteraCPF chama validaCPF internamente

Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 validarCPF(cpf) alteraCPF(cpf)

no vlido

Com encapsulamento alteraCPF(01)

ERRO!

Conceitos OO

Herana

15

Herana - Definio
Estabelecem relacionamentos de generalizao-especializao (-um) entre classes. Tipos de classe:
Superclasse: qualquer ancestral de uma classe Subclasse: classe que deriva de outras classes.

A classe filho herda os mtodos e atributos da classe pai

Conceitos OO

Herana

16

Herana - Definio
Subclasses podem:
Adicionar novos atributos e mtodos Sobrescrever mtodos (diferente de sobrecarga).

Herana mltipla
Classe possui mais de uma superclasse direta No suportado pelo Java.

Interface
Coleo de Mtodos e definio de constantes Quando uma classe implementa uma interface, todos os mtodos declarados na interface devem ser declarados. Uma classe pode implementar diversas interfaces

Conceitos OO

Herana

17

Herana Exemplo 1
Funcionrio Funcionrio_Helena Nome=Helena Reis Nasc=28/01/1965 Salrio = 4.000 InformarSalrio CalcularIdade

Superclasse (caractersticas comuns)

Nome Nasc Salrio InformarSalrio CalcularIdade

Subclasse (caractersticas especficas)


Gerente Projeto InformarProjeto

Gerente_Mrio Nome=Mrio S Nasc=16/02/1970 Salrio = 3.000 Projeto = SAP InformarSalrio CalcularIdade InformarProjeto

Conceitos OO

Herana

18

Herana Exemplo 2
Supor que Circulo e Retngulo sejam subclasses de Forma
Crculo Coordenada X Coordenada Y Raio Calcularrea CrculoXpto Coordenada X = 10 Coordenada Y = 15 Raio = 2 Calcularrea

CalcularArea() { rea = pi * Raio * Raio; retorna rea ; }

CalcularArea()

12,68

Retngulo Coordenada X Coordenada Y Largura Altura Calcularrea

ReatnguloXpto Coordenada X = 10 Coordenada Y = 15 Largura = 3 Altura = 2 Calcularrea

CalcularArea() 6
CalcularArea() { rea = Largura * Altura; retorna rea; }

Conceitos OO

Herana

19

Herana Quando usar

Conceitos OO

Polimorfismo

20

Polimorfismo
Permite tratar objetos de classes derivadas (subclasses) como objetos de classes ascendentes (superclasses). Habilidade de objetos de:
Pertencer a diferentes tipos Responder chamadas de mtodos como o mesmo nome, cada um com uma implementao especfica ao tipo.

Implementao em tempo de execuo (late binding).

Conceitos OO

Polimorfismo

21

Exemplo de Polimorfismo
Forma

A Interfce Forma vai ser instanciada como um objeto de Crculo ou Retngulo Apenas durante a execuo ser definido se Forma ser um Crculo ou Retngulo. Exemplo: calculaQtdeLataTinta(Forma f, int tamLata) {

CalcularArea

Crculo Coordenada X Coordenada Y Raio CalcularArea

Retngulo Coordenada X Coordenada Y Largura Altura CalcularArea

return f.calcularArea() * bla bla bla ... }