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