Beruflich Dokumente
Kultur Dokumente
SUMÁRIO
1. Objetos e Métodos
2. Classes, Instâncias e Mensagens
3. Métodos Constructors e Destructors
4. Encapsulamento
5. Reusabilidade
6. Herança Simples
7. Métodos estáticos e virtuais
8. Polimorfismo
9. Referências Bibliográficas
Orientação a Objetos
Orientação a Objetos
1. Objetos e Métodos
Objeto = é a união inseparável entre uma estrutura de dados e todas as operações (métodos)
associadas a esta estrutura
Podemos Ter diversos objetos criados a partir de uma mesma classe. Esses objetos
terão as mesmas características entre si, descritos pela classe. por isso dizemos que cada um
desses objetos é uma instância desta classe.
Cada objeto é uma instância de uma classe.
Objetos são criados durante a execução do programa, e ocupam espaço na memória.
4. Encapsulamento
A capacidade de um objeto possuir uma parte privada é denominada encapsulamento.
Encapsulamento impede o cliente de enxergar os detalhes da sua implementação, o que
denominamos ocultação de informação.
A POO tem por objetivo criar objetos independentes da aplicação. O reuso permite
desenvolver um conjunto de classes que não seja limitado a um único sistema. Exemplo:
classe pessoa, classe mouse, classe janela, classe menu etc
A reusabilidade só pode ser alcançada se as classes forem projetadas e implementadas
com independencia da aplicação.
Esta proteção (ocultação) tem as seguintes regras:
a) apenas os métodos devem ser capazes de modificar o estado interno de um objeto
(ocultação da informação), não deve ser possível acessar o valor armazenado em uma
variável de instância externamente. Toda mudança no estado interno de um objeto deve
ser consequencia de uma mensagem.
b) a resposta a uma mensagem deve ser completamente determinada pelo estado interno
do objeto receptor (independencia de aplicação). Se 2 instâncias de uma mesma classe
possuem o mesmo estado interno, então devem responder a mensagens iguais de forma
idêntica. Isto garante que a resposta a uma mensagem não dependa de fatores externos
ao objeto. Portanto, não devemos acessar variáveis globais da aplicação no interior de
um método. Devemos criar objetos altamente reusáveis, garantindo que seu
comportamento seja independente do ambiente ao redor.
Exemplo Classe DATA
5. Reusabilidade
Com o encapsulamento, o funcionamento de cada classe é independente do resto da
aplicação. Os objetos se tornam reusáveis, isto é, eles podem ser reaproveitados diversas
vezes sem a necessidade de realizar mudanças na implementação.
Uma classe projetada para ser reusável deve ser mais flexível. Isto ocorre porque não
desejamos um objeto que satisfaça os requisitos de uma aplicação particular, mas sim de
uma classe genérica, encapsulando funcionalidade útil em uma grande diversidade de
aplicações.
REUSO: para que classes de objetos possam ser efetivamente reusadas é preciso que
elas estejam disponíveis em HPP (header)., e não junto ao restante do código da
aplicação.
Orientação a Objetos
6. Herança Simples
É comum encontrarmos classes que apresentem um comportamento muito próximo
do que necessitamos em uma aplicação específica, mas que não serão úteis se não formos
capazes de incluir as características particulares exigidas pela aplicação.
Para isto não é necessário alterar o código fonte da classe, nem tampouco refazer
toda a classe. Isto abandonaria os conceitos de abstração (independência da aplicação),
encapsulamento e o principio da reusabilidade.
HERANÇA: permite que uma nova classe seja descrita a partir de outra classe já
existente, herdando suas propriedades. Dizemos que a subclasse herda os métodos e as
variáveis de instância de sua superclasse.
A subclasse deve ser capaz também de adicionar novos métodos e variáveis de
instância aos originais.
Na subclasse é possível redefinir os métodos herdados, isto é, refazer a
implementação do método, sem que a superclasse precise ser modificada.
Embora os nomes dos métodos possam ser duplicados na herança, os nomes da
variáveis de instância NÃO podem.
Assim, uma subclasse pode ser vista como uma especialização de sua superclasse. A
especialização envolve a adição ou modificação de características mas nunca sua subtração.
7. Polimorfismo
• É apenas uma forma simpatica de dizer que uma rotina pode aceitar uma grande
variedade de tipos de objetos.
• Permite que um método aceite como parametro objetos de mais uma classe.
Para isto é necessário construir métodos capazes de receber diversos tipos de objetos como
parâmetros. No entanto, é necessário que o protocolo de suas classes tenham um mínimo de
afinidade (herança).
Estudante Pessoa
Pessoa
Estudante
Estudante
Referências Bibliográficas
GOTTFRIED, Byron Stuart. Programando em C. São Paulo, Makron Books., 1993.
HICKSON, Rosangela. Aprenda a programar em C, C++ e C#. Rio de Janeiro: Campus Ed, 2002.
MATEUS, César Augusto. C++ Builder 5 Guia prático. São Paulo: Érica Ed., 2000.
POHL, Ira. C++ para programadores de Pascal. V.2 Rio de Janeiro: Berkeley ed., 1991.
SCHILDT, Herbert. Borland C++ Completo e Total. São Paulo: Makron Books, 1997.
TENENBAUM, Aaron M. e outros; Estruturas de dados usando C: São Paulo: Makron Books, 1995.
WEISKAMP, Keith et al. Programação Orientada para objeto com Turbo C++ . São Paulo: Makron
Books,1993.
WIENER, Richard S. & PINSON, Lewis J. C++ Programação Orientada para objeto – Manual
prático e profissional. São Paulo: Makron, McGraw-Hill, 1991.