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
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
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
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
lborges@heliorocha.com.br
lborges@heliorocha.com.br
Objeto
O que se apresenta percepo com um carter fixo e estvel. So caracterizados por trs aspectos:
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
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
Objeto
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
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
Pblica
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