Cada objeto tem características próprias, executa procedimentos próprios e interage de uma maneira própria. Essa técnica também é chamada «programação antropomórfica» ou «programação por personificação».
Veja que não é necessário uma linguagem ou sintaxe com suporte a orientação a objetos, apenas que o programador seja capaz de pensar orientadamente a objetos. Porém uma linguagem ou sintaxe com suporte próprio ajuda bastante.
Na abordagem tradicional procedimental o foco da programação está nos procedimentos imperativos. Na programação funcional o foco está nas funções, passagem de parâmetros e tratamento de retorno.
Já na orientação a objetos o foco está nos objetos simulados e na interação entre eles.
Por exemplo, no famoso jogo da cobrinha, a cobra seria um objeto com características – tamanho por exemplo – e procedimentos – virar à esquerda, por exemplo. Outros objetos seriam a maça e as paredes.
A própria cobra é composta de secções, que por si são objetos com características – posição – e procedimentos – mudar a posição.
O jogo surge da interação entre os objetos.
As características de um objeto são chamadas atributos e os procedimentos métodos. Algumas linguagens permitem atributos especiais que executam métodos de forma transparente. Esses atributos são chamados propriedades.
Atributos e métodos usados para interagir com outros objetos são chamados interface.
Então orientação a objetos consiste em elaborar objetos similares a coisas físicas, com características próprias e uma interface, de forma a que da interação entre os objetos surja o resultado desejado.
Sintaxe
Não… não é da sintaxe de criação, comandos
class
e similares que vou falar.Quero falar de como a sintaxe de uma linguagem deve ser para incitar a orientação a objetos.
Segundo Smalltalk, para uma perfeita orientação a objetos as instruções de um programa devem ser mensagens envidas a objetos.
Para incentivar a orientação a objetos é interessante que o primeiro elemento de uma mensagem seja o objeto chamado.
Por exemplo, fatorial de 5 em Perl (procedimental):
fatorial 5
Em Smalltalk:
5 fatorial
Em Perl, procedimental, é informado um procedimento –
fatorial
– a ser executado e é passado a esse procedimento o parâmetro 5
.Em Smalltalk, orientada a objetos, é informado um objeto –
5
– ao qual é passada a mensagem, dizendo para ele executar um método internamente.Observação: em Haskell, linguagem funcional, não imperativa, a sintaxe seria, no caso em questão apenas, idêntica à de Perl, mas a lógica é diferente: é informada uma função matemática que necessita de um parâmetro. Ou seja, é diferente você dizer «execute esse comando» de «o resultado dessa função é».
Sintaxe ou paradigma?
É preciso se perguntar: «estou orientado a objetos ou estou usando uma linguagem que facilita orientação a objetos para programar sequencialmente?»
Não é pela linguagem ser orientada a objetos que o programa será. Também não é pela linguagem não ser orientada que o programa não será.
Programa é a representação de um algoritmo em uma linguagem determinada; se o algoritmo for orientado a objetos o programa também será, mas se o algoritmo não for, não faz diferença se a linguagem em si é ou não.
Aliás, muitos programadores deixam de estruturar por usar uma linguagem orientada a objetos, resultando em programas sequenciais.
Gente, muito cuidado no planejamento. Não confiem na linguagem para fazer tudo pra vocês.
Bem, está aí mais um artigo conceitual.
[]'s
Cacilhas