O Mundo em Objetos

O objetivo deste artigo é mostrar um pouquinho do mundo O.O. (Orientação ao Objeto) para aqueles que ainda o estão por descobrir.

Num primeiro momento já deixo claro que esta longe da minha intenção esgotar o assunto, mas sim iniciar certo debate sobre ele.

A dificuldade de programar com um “pensamento O.O.” é inerente tanto aos programadores que migram de linguagem quanto aos programadores que já iniciam programando em O.O. e torna-se extremamente difícil estabelecer um motivo para tal dificuldade. Geralmente estas dificuldades são associadas à linguagem e é comum ler em artigos e textos que Java é difícil, C++ é muito complicado e por ai vai, mas na realidade o que falta é entender o “espírito” O.O.

A única relação à “Dificuldade de Programação” que vejo entre Java, C++ em relação às demais linguagens esta na disciplina de programação, inerente ao modelo O.O. de programação e não a linguagem.

Um exemplo que gosto de citar é a classe Errada (elaborei essa classe para ilustrar um pouco a dificuldade acima citada). Imagine a seguinte classe (peço, de antemão, perdão aos programadores O.O.):

 class Errada
{
            static int Numeroum, Numerodois;
            String Nome;
            public static int CalculaSoma(int Numero1, int Numero2)
            {
                        return (Numero1-Numero2);
            }
            public static void SetNumeroUm(int c)
            {
                        Numeroum = c;
            }
            public static void main(String a[])
            {
                        Numeroum = 115;
                        Numerodois = 20;
                        System.out.println("A soma é: "+ CalculaSoma(Numeroum,Numerodois));
            }
}

Ao compilar a classe você não irá ter nenhum erro de compilação, na realidade ela irá funcionar, pois não há erros de linguagem no exemplo acima, os erros estão todos nos conceitos de O.O.

Agora a pergunta feita é: “Como podemos construir esses conceitos em O.O.?” a resposta é simples, treinando, errando, experimentando e principalmente lendo.

Certamente com prática e muita disciplina de programação com o tempo você será capaz de olhar para o programa acima e perceber todos os seus erros, chegando a me achar um incompetente e certamente será mais fácil para você entender os conceitos de um programa O.O. pois, não conheço nada mais próximo da realidade humana que a programação O.O.

Pensar em O.O. é pensar nos objetos como eles são, ou melhor, como nós queremos que eles sejam e ao programar em O.O. sinto-me livre para criar, para desafiar a lógica criando meus modelos e, certamente esse é o motivo de haver tanta afinidade entre o mundo O.O. e o mundo do Software Livre, A LIBERDADE DE CRIAÇÃO pois, quando reaproveitamos o código de um programa e não estamos falando em copiar e colar algo, mas sim nas técnicas O.O. como herdar características e métodos, estamos na verdade construindo um novo sistema computacional baseado num sistema já existente e que deixa de nos servir por algum instante necessitando assim de alguma melhoria. A tarefa de reaproveitar código é comum aos desenvolvedores de Software livre, para citar um exemplo pense em Linux que, para termos uma idéia hoje conta com muito mais de 4.000 desenvolvedores no mundo que, num discurso muito geral e bem distante de regras e revisões, estão reaproveitando código. Isso nos traz a liberdade da mudança, assim como não preciso ficar preso ao ambiente fornecido pelo distribuidor X do Linux, também não preciso ficar preso aos componentes X, Y e Z, posso montar o meu componente que pode não ser melhor que o fornecido, no meu caso certamente não é, mas resolve o meu problema na forma que eu quero e preciso.

Alguns dos meus alunos me acham louco quando digo que lecionar Java, e pode-se ler lecionar O.O., a mim é muito mais que ensinar a programar, é algo muito mais próximo ao ensino de uma filosofia, de uma paixão.

Sou chamado de romântico quando digo que um programador O.O. termina vendo o mundo com uma visão que somente o universo da O.O. permite, quando colocamos esses óculos temos aquilo que os estudiosos chamam de “insigth”, como digo aos meus alunos dormimos “estruturadamente” e acordamos no mundo O.O..

Mas a dica aqui não é dormir e esperar o mundo O.O. bater em sua porta mostrando assim as maravilhas deste tipo de programação, e sim correr atrás, questionar, programar mesmo que erradamente, pensar em Objetos ao invés de pensar em estruturas, pensar em métodos e esquecer as funções, e numa visão bem radical, mas realista, o seu programa não deve possuir variáveis, ele possui atributos.

Se gostou da matéria deixe um comentário or subscribe to the feed and get future articles delivered to your feed reader.

Comentários

Nenhum comentário ainda.

Deixe um comentário

(obrigatório)

(obrigatório)