Você está na página 1de 3

O que significa orientada a objetos ? http://www.macoratti.net/oo_conc2.

htm

O que significa Orientação a


objetos ?

Orientação a objeto é um conceito que esta relacionado com a idéia de classificar , organizar
e abstrair coisas. Veja a definição formal:

"O termo orientação a objetos significa organizar o mundo real como uma coleção de
objetos que incorporam estrutura de dados e um conjunto de operações que manipulam
estes dados. "

Vamos falar uma linguagem mas simples para isto vamos para um ambiente que você conhece
bem: A sua casa !

Agora vamos olhar a sua estante , o seu guarda-roupa , o seu armário , a sua cozinha. Em
todos estes lugares você classificou coisas no seu domínio e , somente de olhar para eles você
já sabe relacionar a classificação que utilizou em cada um deles e como classificou as coisas
que estão neste lugares.

Na estante você agrupou e organizou os livros , no guarda roupa suas camisas, calças , meias ,
ternos , etc. Todos os objetos que você classificou nestes lugares foram organizados baseado
em alguma concepção que você possuía sobre eles.

No contexto orientado a objeto a estante , o armário , a cozinha são chamados de classes.

No contexto de software podemos dizer que :

Uma classe é um gabarito para a definição de objetos. Através da definição de


uma classe, descreve-se que propriedades -- ou atributos -- o objeto terá.

Uma classe mantém dois elementos importantes : estrutura e comportamento.

Uma estrutura representa os atributos que descrevem a classe.


Um comportamento representa os serviços que a classe suporta.

Na 'classe' do seu guarda-roupa , uma camisa amarela pode ser colocada em uma outra classe.
A 'classe' camisa.

Cada camisa tem uma estrutura que é : a textura , a cor , o tamanho e o modelo.
Cada camisa tem um comportamento que é : ordenar , rasgar , desbotar .

Se você concordar que existe uma classe camisa. Vai concordar que existem diversos tipos de
camisas com suas características, ou seja , existem diversos objetos camisas que podem ser
criados a partir da classe camisa. Daí temos o conceito de objetos:

O conceito de orientação a objetos é abordado desta mesma maneira sempre. No contexto do


software podemos então dizer que :

É através de objetos que (praticamente) todo o processamento ocorre em


aplicações desenvolvidas com linguagens de programação orientadas a objetos.

1 de 3 10/9/2010 13:06
O que significa orientada a objetos ? http://www.macoratti.net/oo_conc2.htm

Primeiro você classifica e abstrai os elementos no sistema para proporcionar uma certa
ordem, e, ao fazer isto você define uma classe ;
Feita a definição da classe você pode criar objetos desta classe. (instanciar)

Vou citar aqui o exemplo clássico da planta de uma casa.

- A Classe seria um gabarito (como uma planta de uma casa)


- O objeto é concretização do gabarito (casas feitas a partir da mesma planta)

Quando levamos estes conceitos para as linguagens de programação nada se altera.

Existem alguns conceitos básicos que estão vinculados ao conceito de orientação a objetos.
São eles :

Herança
Encapsulamento
Polimorfismo

A herança permite implementar a funcionalidade a sua classe de tomar emprestado o resto


da estrutura e comportamento de classes de nível mais alto.

Pensemos na classe carro.

Esta classe define os comportamentos e atributos de um carro; E existem atributos que serão
comum a todos os carros.

As rodas e o motor são atributos comuns a qualquer carro. Já uma Ferrari possui atributos que
somente ela possui : valor por exemplo

A definição formal seria:

Herança é um mecanismo que permite que características comuns a diversas classes


sejam agrupadas em uma classe base, ou superclasse. A partir de uma classe base,
outras classes podem ser especificadas. Cada classe derivada ou subclasse
apresenta as características (estrutura e métodos) da classe base e acrescenta a
elas o que for definido de particularidade para ela

Encapsular significa "ocultar informações" ele define que cada objeto contém todos os
detalhes de implementação necessários sobre como ele funciona e oculta os detalhes internos
sobre como ele executa os serviços.

Quando você acelera um carro você esta enviando uma mensagem ao motor do carro usando o
acelerador e o carro sabe que tem que acelerar.

Você não precisa saber como é feita a aceleração no motor você apenas pisa fundo no
acelerador , a implementação de como é feita a aceleração esta encapsulada do cliente.

Polimorfismo significa muitas formas , na orientação a objetos você pode enviar uma mesma
mensagem para diferentes objetos e fazê-los responder da maneira correta. Você pode enviar
a mensagem de dar marcha-ré para cada objeto semelhante a um carro e cada um vai se
comportar de maneira diferente para atender a sua solicitação.

2 de 3 10/9/2010 13:06
O que significa orientada a objetos ? http://www.macoratti.net/oo_conc2.htm

Uma definição mais formal diria:

"Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma
superclasse podem invocar métodos que têm a mesma identificação (assinatura)
mas comportamentos distintos, especializados para cada classe derivada, usando
para tanto uma referência a um objeto do tipo da superclasse"

Procurei ser o mais didático e simples possível .

Pensar em orientação a objetos realmente não é fácil e também não é a panacéia universal.

Até breve...

José Carlos Macoratti

3 de 3 10/9/2010 13:06

Você também pode gostar