Anda di halaman 1dari 14

Programao Orientada

a Objetos
DEFINIES

Motivao
A programao Orientada a objetos (POO):
um paradigma de programao
traz para o desenvolvimento de programas conceitos mais semelhantes ao que
encontramos no nosso dia a dia, tornando a tarefa programao mais intuitiva;

Objeto:
qualquer artefato sobre o qual se pode armazenar informaes e efetuar tarefas.

Programao Orientada a Objetos


Mais formalmente:
O termo orientao a objetos pressupe uma organizao de software em
termos de coleo de objetos discretos incorporando estrutura e
comportamento prprios.
Esta abordagem de organizao essencialmente diferente do
desenvolvimento tradicional de software, onde estruturas de dados e rotinas
so desenvolvidas de forma apenas fracamente acopladas.

Programao Orientada a Objetos


Histrico
Termo criado por Alan Key, autor da linguagem de programao SmallTalk.
A primeira linguagem a usar os conceitos de OO Simula76, criada por Ole Johan Dahl e
Kristen Nygaard em 1967.
Alguns exemplos de linguagens modernas utilizadas por grandes empresas em todo o
mundo que adotaram essas idias: Java, C#, C++, Object Pascal (Delphi), Ruby, Python,
Lisp, PHP...
A maioria delas adota as idias parcialmente, dando espao para o antigo modelo
procedural de programao, como acontece no C++ e no Object Pascal
Este tipo de linguagem segue a idia de utilizar uma linguagem previamente existente
como base e adicionar novas funcionalidades a ela.
Outras so mais "puras", sendo construidas do zero focando-se sempre nas idias por
trs da orientao a objetos como o caso das linguagens SmallTalk, JAVA e Python onde
TUDO orientado a objetos.

Conceitos Bsicos
A filosofia da Orientao a Objetos
A POO foi criada para tentar aproximar o mundo real do mundo virtual:
a idia fundamental tentar simular o mundo real dentro do computador.
Na POO o programador responsvel por moldar o mundo dos objetos e explicar para
estes objetos como eles devem interagir entre si.
Os objetos "conversam" uns com os outros atravs do envio de mensagens, e o papel
principal do programador especificar quais sero as mensagens que cada objeto pode
receber, e tambm qual a ao que aquele objeto deve realizar ao receber aquela
mensagem em especfico.

Conceitos Bsicos
Classes, atributos e mtodos
Uma classe uma abstrao que define um tipo de objeto
Os Atributos so variveis que estaro dentro de cada um dos objetos desta
classe e podem ser de qualquer tipo.
Os Mtodos definem que tipo de aes esse tipo de objeto capaz de realizar

Conceitos Bsicos
Uma analogia
Classes na Biologia: um animal uma classe, e tem suas caractersticas:
um ser vivo capaz de pensar
precisa se alimentar para viver

O Ser Humanos e os pssaros so sub-classes de animais: tem todas as


caractersticas de um animal, mas tambm tem algumas peculiaridades suas
Uma classe no tem vida. Os seres pertencentes a esta classe que possuem
as caractersticas que os indica como participantes desta classe.
O cachorro um Objeto (ou instncia) da classe Cachorro.
A classe Cachorro no pode latir, no pode fazer xixi no poste, ela apenas
especifica e define o que um cachorro.

Conceitos Bsicos
Uma analogia
A criao de uma nova Classe dividida em duas partes: os seus atributos e os
seus mtodos.
Atributos:
a classe Cachorro poder ter o atributo nome que ser do tipo String. Assim, cada Objeto
desta classe ter uma varivel prpria chamada nome, que poder ter um valor
qualquer

Mtodos:
Os objetos se comunicam atravs de mensagens. Quando um objeto desta classe
receber uma mensagem de algum outro objeto contendo o nome de um mtodo, a ao
correspondente a este mtodo ser executada.

Exemplo
A classe carro
Atributos
Marca
Modelo
Cor

Mtodos
Acelerar
Frear
Travar portas

Conceitos Bsicos
Construtores
Um construtor um mtodo com uma funo especial: ele serve para inicializar
os atributos e executado automaticamente sempre que voc cria um novo
objeto.
Quando voc especifica os atributos de uma classe, voc apenas diz ao sistema
algo como "objetos desta classe Pessoa vo ter uma varivel chamada Nome
que do tipo String, uma varivel chamada idade que do tipo inteiro, etc,
etc".
Mas estas variveis no so inicializadas, elas s sero criadas no construtor.
Normalmente, a sintaxe algo parecido com isto:
ObjetoJoao = new Pessoa( "Joo", 13 );

Destrutores
Destrutor:
um mtodo que chamado quando um objeto da classe encerra-se.
So usados para eliminar quaisquer variveis dinamicamente alocadas pelo
objeto.
Podem executar tambm diversas outras tarefas de limpeza.
Em C++ o nome de um destrutor consiste do til (~), seguido pelo nome da
classe.

Herana
Classes na Biologia:
Um ser humano um animal, mas possui algumas caractersticas prprias.
Para representar estas caractersticas prprias mantendo as caractersticas da classe
animal utilizamos a Herana.

Classe x Subclasse
Uma classe pode ampliar as caractersticas de outra classe, estendendo-a.
Desta forma, a classe SerHumano ser uma especializao (ou subclasse) da classe
Animal.
A classe Animal seria a classe pai da serHumano, e logicamente, a classe SerHumano
seria a classe filha da Animal.
Uma classe pode sempre ter vrios filhos, mas normalmente as linguagens de
programao orientadas a objetos exigem que cada classe filha tenha apenas uma
classe pai.
Algumas linguagens permitem que uma classe herde as caractersticas de varias
classes (herana mltipla)

Polimorfismo
Muitas formas:
Um dos conceitos mais difceis de entender na OO.
Vem da juno de 2 termos gregos:
Poli Muito
Morfo Forma

Na orientao a objetos:
Um mesmo tipo de objeto, sob certas condies, pode realizar aes diferentes ao
receber uma mesma mensagem

Ou seja:
Apenas olhando o cdigo fonte no sabemos exatamente qual ser a ao tomada
pelo sistema, sendo que o prprio sistema quem decide qual mtodo ser
executado, dependendo do contexto durante a execuo do programa.

Bibliografia
Savitch, Walter C++ Absoluto, Addison Wesley, 2004

Anda mungkin juga menyukai