Você está na página 1de 26

Tcnicas de Linguagem de Programao II

Conceitos Gerais OO

Histria

SIMULA 67 Primeira Linguagem OO Projetada para realizar simulaes Conceitos de classe e herana OO destaca-se pela nfase na reutilizao de cdigo e na uniformidade do formalismo durante todas as fases do desenvolvimento de sistemas. SMALLTALK (1983) O termo POO introduzido com o Smalltalk Tornar o processo de construo de aplicaes acessvel a quaisquer usurios. Serviu como base para uma nova configurao das linguagens de programao, que passaram a trabalhar com objetos.

lborges@heliorocha.com.br

Histria

Paradigma de Orientao a Objetos (Fins dos anos 80) abordagem poderosa e prtica para o desenvolvimento de software Java Orientado ao Objeto Baseado na Linguagem C++ Independente de Plataforma Cdigo independente de arquitetura Seguro, Robusto e Compacto Suporte a Multiprocessamento Pode ser usado em pginas HTML

lborges@heliorocha.com.br

Paradigma da Orientao a Objetos

Anlise Orientada a Objetos

o processo de construo de modelos do domnio do problema, identificando e especificando um conjunto de objetos semnticos (que tem significativo para o domnio do problema) que interagem e comportam-se conforme os requisitos estabelecidos.

lborges@heliorocha.com.br

Paradigma da Orientao a Objetos

Modelagem Orientada a Objetos

Modela o mundo em termos de objetos que tm propriedades e comportamento, e eventos que disparam operaes que mudam o estado dos objetos. Os objetos interagem formalmente com outros objetos.

lborges@heliorocha.com.br

Paradigma da Orientao a Objetos

Programao Orientada a Objetos um mtodo de implementao na qual programas so organizados como coleo de objetos que cooperam entre si, cada um dos quais representa a instncia de alguma classe, e cuja as classes so todas membros de uma hierarquia de classes definida via relacionamento de herana.

lborges@heliorocha.com.br

Paradigma da Orientao a Objetos

lborges@heliorocha.com.br

Paradigma da Orientao a Objetos

lborges@heliorocha.com.br

Paradigma da Orientao a Objetos

Objeto

O que se apresenta percepo com um carter fixo e estvel. So caracterizados por trs aspectos:

Identidade; Caractersticas (estado interno); Comportamento;

lborges@heliorocha.com.br

Objeto

Voc pode dar uma olhada ao seu redor e ver muitos exemplos de objetos do mundo-real: seu cachorro, sua escrivaninha, sua televiso, sua bicicleta. Esse objetos do mundo real compartilham duas caractersticas: todos eles tem estado e comportamento. Por exemplo, cachorro tm estado (nome, cor) e comportamento (latindo, buscando alimento).

lborges@heliorocha.com.br

Objeto

As caractersticas e seus respectivos estados so representados em modelos computacionais de objetos por variveis (atributos) e valores que determinam seu estado. O comportamento de um objeto representado atravs de mdulos que contm algoritmos computacionais denominados mtodos.

lborges@heliorocha.com.br

Objeto
Objeto Lmpada Caractersticas Potncia: 40w Tenso: 12V Famlia: incandescentes Cor: clara

Comportamento Ligar, Desligar, Aumenta_Luminosidade, Diminui_Luminosidade, etc...


lborges@heliorocha.com.br

Mensagem

A comunicao entre os objetos realizada atravs de mensagens. atravs delas que um objeto solicita a outro que realize determinada tarefa. A cada mensagem recebida disparado um mtodo do objeto que ativa uma ao.

lborges@heliorocha.com.br

Mensagem

lborges@heliorocha.com.br

Classe

No mundo real, voc tem freqentemente muitos objetos do mesmo tipo. Por exemplo, sua bicicleta somente uma de muitas bicicletas no mundo. Usando a terminologia orientada a objeto, ns dizemos que seu objeto bicicleta uma instncia da classe de objetos conhecida como bicicletas. Bicicletas tm algum estado (engrenagem atual, cadncia atual, duas rodas) e comportamento (engrenagens de mudana, freio) em comum. Porm, o estado de cada bicicleta independente e pode ser diferente disso de outras bicicletas.

lborges@heliorocha.com.br

Classe

Uma classe uma representao abstrata para um conjunto de objetos que possuem estrutura e comportamento semelhantes. Por esse motivo, as classes definem:

Os atributos que iro descrever o objeto. Os mtodos que definem o comportamento dos mesmos.
Objeto
potncia:60w tenso:127v famlia:incandescente cor: amarela

Classe

potncia tenso famlia cor

Objeto

potncia:42w tenso:135v famlia:fluorescente cor: branca

lborges@heliorocha.com.br

Classe
operaes

atributos

lborges@heliorocha.com.br

Construtor e Destrutor

Construtor

Todo objeto deve ser instanciado (criado) atravs da ativao do mtodo construtor.

Destrutor

o inverso do construtor, ele ativado automaticamente quando o objeto est sendo destrudo a fim de liberar a memria ocupada pelo mesmo.

lborges@heliorocha.com.br

Encapsulamento

Na programao orienta a objetos, os objetos comunicam-se atravs de mensagens. A nica coisa que um objeto conhece sobre outro objeto a sua interface de comunicao. Os dados e a lgica de cada objeto so mantidos escondidos dos outros objetos. Em outras palavras, a interface encapsula o cdigo e os dados do objeto.

lborges@heliorocha.com.br

Encapsulamento

O princpio do encapsulamento estabelece uma diviso entre:

Interface: partes do objeto que se relacionam com o exterior. Implementao: dados e cdigo que implementam o comportamento do objeto.

possvel para o autor da classe especificar que uma caracterstica est disponvel para todos os clientes, para nenhum cliente, ou para clientes especficos.

lborges@heliorocha.com.br

Encapsulamento

Privada

No visvel a nenhuma classe externa; visvel apenas dentro da classe.

Pblica

Completamente visvel internamente e para outras classes e elementos externos.


No visvel a classes e elementos externos; visvel apenas dentro do package, da classe e para seus herdeiros.

Protegida

lborges@heliorocha.com.br

Encapsulamento

Na POO uma classe possui, em geral, os atributos privados e os mtodos pblicos, tornando o objeto como uma caixa preta onde s aparece o suficiente para que o programa possa utiliz-lo.

lborges@heliorocha.com.br

Interface

A interface de uma classe a coleo de mtodos e campos aos quais uma classe concede acesso para objetos de outras classes. Essa interface geralmente representa um compromisso de que os mtodos iro executar a operao implcita em seus nomes e do modo como est especificado.

lborges@heliorocha.com.br

Herana

lborges@heliorocha.com.br

A herana o mecanismo utilizado para se definir uma nova classe de objetos a partir de uma imitao, refinamento ou combinao de outras classes j existentes. Isto torna possvel tomando uma classe como herdeira de outra. Quando uma classe herdeira (subclasse) de outra, ela possui os mesmos atributos da superclasse alm dos definidos na prpria classe, e tem acesso aos mtodos desta superclasse, respeitadas as condies de visibilidade. A subclasse pode acrescentar atributos e mtodos prprios.

Herana
Generalizao animal mamfero objetos materiais planta rvore

cachorro
pit bull

humano
vendedor

ornitorrinco

ip

aougueiro
lborges@heliorocha.com.br

florista

Especializao

Polimorfismo

Polimorfismo o princpio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar mtodos que tm a mesma identificao (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referncia a um objeto do tipo da superclasse. A deciso sobre qual o mtodo que deve ser selecionado, de acordo com o tipo da classe derivada, tomada em tempo de execuo.

lborges@heliorocha.com.br