Você está na página 1de 3

Programação Orientada a Objetos

Publicado em: 12/11/2004

O objetivo desse artigo é para desenvolvedores que desconhecem programação


orientada a objeto, apresento as características básicas de programação orientada a
objeto e espero dar o ponta pé inicial para o leito no aprofundamento desse assunto.
Programação orientada a objeto implementa o conceito de: Abstração, classe, objeto,
encapsulamento, herança e polimorfismo.

A orientação a objetos apesar de estar fortemente presente hoje nas linguagens de


programação é um conceito antigo na computação, onde surgiu na área acadêmica.

A POO (Programação Orientada a Objetos) e a POE (Programação Orientada a


Eventos) são facilmente confundidas, mas lembre-se a POO contém a POE, mas a POE
não contém a POO, um objeto pode existir mesmo que não exista nenhum evento
associado a ele, mas um evento não pode existir se não houver um objeto a ele
associado.

ABSTRAÇÃO

Quando surgiram os primeiros computadores, a preocupação dos programadores era em


busca da maior eficiência com o pouco uso de memória devido às limitações do
hardware da época. Os programas consistiam em um único bloco, pois a divisão em
vários blocos consumia mais recursos. Com a evolução do hardware a preocupação é na
eficiência do desenvolvimento, isto é o tempo de trabalho dos programadores.

Para otimizar o tempo de desenvolvimento foi elaborado varias técnicas e metodologias,


onde em geral é muito usado a estratégia de "dividir para conquistar",ou seja, implica
em resolver um grande problema dividindo-o em vários problemas menores. Esse
método aumenta a pontecialidade do reuso de código. Essa técnica é realizada por meio
de modularização, o que além de resolver problemas complexos facilita o entendimento
dos programas e viabiliza o reuso de códigos.

Assim entra a abstração o que é um conceito fundamental para conseguir uma boa
modularização. A abstração é fundamental para o raciocínio e resolução de problemas,
devemos nos importar com os aspectos relevantes do problema em questão. Em
programas bem modularizados, cada modulo representa uma abstração existente no
contexto do problema.Essa técnica é empregada em sua forma mais simples por funções
e procedimentos parametrizados, criando funções genéricas onde resolvem um
subproblema.

Poderíamos ficar falando só sobre abstração de dados, o que considero o mais


importante para se construir programa bem modularizados e conseqüentemente
orientados a objetos. O aspecto mais importante é como dado um problema criar sua
abstração, ou seja, quais aspectos são relevantes e como representá-los. Conhecer as
técnicas para implementar uma abstração é menos relevante, pois não garante a
construção de um bom aplicativo.
O.O claro que o leitor já deve ter escutado esse termo e para muito pode ser assustador e
complexo, no entanto não é, a aplicação da técnica não é complexo e atualmente traz
muitas vantagens para o desenvolvimento e esse conceito é o utilizado nas novas
linguagens de programação.Onde temos o JAVA e .NET totalmente orientados a objetos.
E já temos bancos de dados também O.O , onde para mim será a nova arquitetura usada
num futuro próximo.

Então para os desenvolvedores manterem-se atualizados devem regaçar as mangas,


respirar fundo e cair de cabeça neste assunto. Espero que este artigo seja o pontapé
inicial para muitos em programação orientada a objetos.

OBJETO

Um objeto é tudo aquilo que existe.Poderia ser um cliente, um carro, um relógio. Em


termo computacional um objeto é a representação de algo que existe. Você deve abstrair
um "objeto" real para representá-lo computacionalmente, como, por exemplo, construir
o objeto carro.

Os objetos são incrivelmente úteis, pois transformam a engenharia de software em algo


semelhante a blocos de concretos para construção. Assim quem utiliza não precisa
entender como o bloco foi construído e isso se chama encapsulamento.

Para entender melhor o que seria um objeto vamos usar como exemplo um rádio.
Existem várias coisas que você pode fazer com esse objeto, como: ligar ou desligar,
escutar o som, aumentar o volume, escolher uma estação. E você não precisa entender
como tudo funciona para poder executar essas atividades.

Na engenharia de software os objetos funcionam basicamente da mesma maneira. Uma


vez que tenha um objeto, você pode usar, pedir que ele faça coisas sem ter que entender
como seus detalhes internos estão implementados.

Em geral os objetos possuem as seguintes características:

Identidade
Estado
Comportamento
ENCAPSULAMENTO

O conceito básico por trás da orientação a objeto é o encapsulamento.O que é muito


simples de entender. A todo o momento estamos trabalhando com "algo" encapsulado.
Como por exemplo, o uso do componente Common Dialog, usamos as propriedades e
métodos desse componente, mas não vemos como esta implementado. O uso de dll, ocx,
API sempre utilizamos e não sabemos como esta implementada, ou seja, o código esta
encapsulado.

MÉTODOS E PROPRIEDADES

Você utiliza os objetos através dos seus métodos e propriedades.Os métodos são algo
que você pede para o objeto fazer como: aumentar o som do Rádio ou criar um novo
cliente. As propriedades descrevem as características do objeto.Como por exemplo: para
um objeto pessoa o nome, endereço, telefone seriam as propriedades. E o que você pode
fazer com essa pessoa seria um método.

VISIBILIDADE

Algumas partes do seu objeto serão privadas, enquanto outras serão publicas. Os
métodos e propriedades publicas serão a interface do seu objeto com o usuário. É o que
você espera que o desenvolvedor utilize do seu objeto.

CLASSE

Na construção de software é usado o termo CLASSE, o que na verdade seria o objeto


abstrato construído computacionalmente.Quando o aplicativo é executado você vai
utilizar essa classe dando assim "vida" ao objeto. Você constrói a classe onde fica seu
código e vai fazer uso dessa classe declarando uma variável dessa classe que quando
executado o programa a variável será uma instancia dessa classe onde chamamos de
objeto. Em geral "criamos classes" e "instanciamos objetos". A criação de uma classe é
feita em tempo de projeto, quando você esta codificando o seu software, o que envolve
a escrita do código fonte. O objeto é criado em tempo de execução, quando é feita uma
instancia da classe é criado um objeto. A classe é como se fosse um molde, você
constrói o molde e depois utiliza para fazer diversos objetos.

HERANÇA

A herança é usada para criar objetos que tem "tudo que outro objeto tinha, mas também
possui alguns detalhes próprios". A herança nos permite pegar uma classe e utilizar ou
alterar suas propriedades e métodos incluindo nossas propriedades, métodos.

Um exemplo seria, pegamos uma classe Pessoa, onde possui como propriedades: nome,
endereço, telefone, cpf e etc. Incluímos essa classe pessoa na nossa classe Funcionário,
dessa forma aproveitamos todas as propriedades de pessoa e incluímos as propriedades
especificas de funcionário, como: data de admissão, cargo, salário e etc.

POLIMORFISMO

Conceito mais difícil de ser compreendido, no entanto não é nada complicado entendê-
lo. Significa que um objeto pode ser tratado como se fosse um tipo diferente de objeto,
desde que seja com bom senso.Isso esta muito relacionado com o conceito de herança.
Podemos por exemplo tratar o objeto Funcionário como sendo o objeto Pessoa, pois o
objeto Funcionário herda todos as propriedades e métodos do objeto pessoa. O contrário
não pode ser feito, pois o objeto Funcionário possui características que o objeto pessoa
não tem.

Dessa forma quando se ouve falar de polimorfismo se trata de que um objeto pode se
comportar como se fosse outro objeto

Você também pode gostar