A nossa teia de relações com o mundo se dá em boa parte por meio do
conceito de objetos, temos a tendência natural de identificar o que
são estas diferentes entidades, observando como aparentam ser e qual
seu comportamento para o nosso ponto de vista, podemos definir quais são.
Exemplo: um simples usuário de uma TV ou um técnico que vai concertá-la.
Ao observar um rádio, nós reconhecemos sua forma retangular, seu tamanho
usual, colorido típico e aplicação. O rádio que observamos não é o único
existente, existem diversos como tipos de rádios como o radio portátil,
de mesa, etc. Um tipo especifico de rádio carrega consigo uma
utilização reservada, mesmo que apresente algumas características
idênticas a outros rádios, tem outras utilizações.
O termo rádio portátil caracteriza mais do que a identidade do objeto,
é um tipo de objeto que apresenta características próprias. Devemos
lembrar que existem diversos tipos de rádios que transmitem diferentes
tipos de informações por outros canais (privado ou público) e com
diversas utilizações (militar ou doméstico).
Agora analisando por outro ponto mais particular. Como utilizamos o
rádio? Podemos ligar por meio de um botão on/off na parte inferior
esquerda, temos o controle de volume na superior direita e o seletor
de estações na parte direita superior, conforme o modelo outras opções.
Mesmo sem conhecer sua estrutura interna, as pessoas podem utilizar este
objeto ligando e desligando, aumentando ou diminuindo o volume ou
sintonizando na sua estação predileta. Os detalhes da sua estrutura
ficam ocultos, podemos então utilizar apenas o que o projetista julgou
necessário.
Por meio deste exemplo de relação com objetos que utilizamos no
nosso dia-a-dia, podemos descrever informalmente as principais
características da programação orientada por objetos.
2.1 - Classificação
É a categorização daquilo que nos rodeia. Criamos classes de objetos
para identificar objetos que compartilham de características em
comuns, embora distintas, em cada objeto. Como os seres humanos que tem
características em comum, mas podem ser distinguidos pela altura,
idade, peso, etc.
2.2 - Identidade
Nossa relação com os objetos ao nosso redor não se resume a simples
classificação. Por exemplo, nossa teia de relações com outras pessoas
fazem elas assumirem uma posição singular, assumindo assim uma identificação.
Conhecendo mais alguém descobrimos seu nome e sobrenome, por exemplo.
2.3 - Encapsulamento
Essa característica permite que possamos utilizar um objeto conhecendo
apenas sua interface, sua aparência exterior. Como no exemplo de
utilização do rádio que descrevemos acima. O encapsulamento permite
preservar informações consideradas importantes ou sigilosas dentro do
objeto, disponibilizando apenas o que se julgue conveniente.
2.4 - Herança
É o mecanismo de criação de novas classes de objetos a partir de outras
já existentes. A herança utiliza características do objeto de origem,
usando uma forma especial de compartilhamento de código. Agora
podemos criar varias classes, hierarquicamente relacionadas, especializando
as classes.
2.5 - Polimorfismo
Refere-se a capacidade de conhecermos em um objeto um outro mais geral.
Por exemplo, tratamos um radio como um objeto de forma geral podemos
classificar o radio como um eletrodoméstico.
2.6 - Observações
A utilização da orientação à objetos no desenvolvimento de um programa
se baseia na construção de classes e na criação de objetos dessas classes,
para que trabalhem em conjunto no bom funcionamento do programa.
O
Java é uma linguagem que carrega consigo todas as
características necessárias de orientação a objetos:
- a definição de classes;
- a construção de objetos contendo dados internos não acessíveis;
- a disponibilidade de um mecanismo de herança.
Mesmo sendo complexa, esta forma de programação é a mais apropriada
para o desenvolvimento de sistemas, pois permite tratar problemas
nos aproximando da nossa realidade de entendimento do mundo, em vez
de dirigir a solução para as características de funcionamento
dos computadores, tal como faz a tradicional linguagem procedural.