E aí desenvolvedores, tudo bem com vocês? Hoje daremos início a série de tutoriais sobre orientação a objetos em Java. Começaremos com o tutorial, “ORIENTAÇÃO A OBJETOS: INTRODUÇÃO”. Este tutorial irá nos inserir neste universo de inúmeras possibilidades. A esta altura, espero que esteja completamente imerso neste novo mundo que é a programação.

A Orientação a Objetos é um modelo de análise, projeto e programação de software. Tal programação é baseado na composição e interação entre diversas unidades chamadas de “objetos”.

A orientação a objetos está entre nós a pelo menos 6 décadas. Mas foi somente nos anos 90 com o surgimento de linguagens mais sofisticadas como o Java, que POO se popularizou. Trata-se de um paradigma que nos permite criar códigos que se aproximam da forma como pensamos e agimos no mundo real.

COMO SURGIU A ORIENTAÇÃO A OBJETOS

Além disso, a principal motivação para o surgimento da orientação a objetos tal como a conhecemos hoje foi o conceito de simulação.

No cenário computacional, de acordo com a Wikipédia, “simulação é o emprego de formalizações em computadores. Tais como expressões matemáticas ou especificações mais ou menos formalizadas. Cujo propósito é de imitar um processo ou operação do mundo real”.

Um outro conceito, oferecido pelo site Paragon, nos diz que “a simulação computacional consiste na utilização de certas técnicas matemáticas. Que são empregadas em computadores, quais permitem imitar o funcionamento de, praticamente qualquer tipo de operação ou processo do mundo real”.

Entretanto, se a programação em seu estágio inicial, que contempla o paradigma da programação estruturada não compreende um processo natural de aprendizagem. Tão pouco compreende a abstração da Orientação a Objetos. Mas como sempre falamos aqui, seja consistente e esteja presente, nada como a prática diária para naturalizar processos.

Mas é importante que você entenda. Não basta programar utilizando uma linguagem orientada a objetos para garantir que você está efetivamente programando orientado a objetos. Não! Como citamos em “LINGUAGEM JAVA E SUAS CARACTERÍSTCAS”, para ser considerada orientada a objetos uma linguagem precisa incorporar quatro características. Encapsulamento, polimorfismo, herança e ligação dinâmica.

CLASSES E OBJETOS

Grosso modo já sabemos que objeto é qualquer elemento do mundo real que pode ser representado por programa de computador. Como por exemplo, pessoas, países, produtos e até onde o limite da sua criatividade alcançar. Assim, compreendemos também que é na interação entre estes objetos que as ações de fato acontecem em um sistema.

Tais objetos são criados a partir de um modelo denominado classes. Estes modelos podem, por sua vez serem compostos por zero ou mais métodos e/ou variáveis (atributos). Estes métodos incluem blocos de instruções, que podem ou não conter um valor para ser retornado. E que podem ou não conter parâmetros para serem utilizados quando da chamada do método.

E as variáveis tal como sabemos são utilizadas para referenciar um objeto na memória do computador. Ou para o armazenamento de valores. Posteriormente veremos que tais variáveis, são em orientação a objetos chamadas de atributos.

Assim, por definição uma classe é uma forma de definir um tipo de dado em uma linguagem orientada a objetos. Ela é formada por informações que a caracterizam e informam seu comportamento. Uma classe define ainda quais dados serão trabalhados e mais, define como eles serão trabalhados.

Entenda que o comportamento de um objeto é definido em uma classe por seus métodos – o como. Ao passo que os estados (características) possíveis desse objeto são definidos por meio de atributos.

Considere os seguintes atributos na classe/objeto carro. Atributos estes, que aliás são comuns a todos os carros. Como por exemplo, cor, marca, valor, se é importado ou nacional, potência do motor e outras. Como comportamento temos o ligar/desligar, acelerar/frear, distância percorrida por quilômetro entre outras ações possíveis.

Ainda sobre classes, observem que com elas podemos uma única vez definir como devem ser todos os objetos criados a partir dela.

A ABSTRAÇÃO EM ORIENTAÇÃO A OBJETOS

A literatura define classe como “uma abstração de uma entidade. Seja esta entidade física (pessoa, carro, personagem) ou conceitual (venda, viagem, tipo de pagamento)”.

Aliás, a abstração é um conceito muito importante dentro da orientação a objetos. De acordo com o dicionário Aurélio “abstração é a ação de abstrair, de analisar isoladamente um aspecto, contido num todo”. O Michaelis diz da abstração como sendo “um processo pelo qual se isolam características de um objeto. Considerando os que tenham em comum certos grupos de objetos”.

Assim, imagine agora uma fábrica de carros. O pensamento abstrato em torno do projeto diz que os carros terão portas, rodas, assentos, lataria e usará combustível. A partir deste modelo a fábrica poderá desenvolver vários modelos, tendo como base um modelo inicial generalizado.

Outra importante dica é pensar em classes como substantivos (aluno, professor, diretor). E agora que já sabe o conceito, pense também como tipo abstrato de dados.

Dentro deste contexto, em um sistema escolar poderíamos utilizar o termo “pessoa” para representar o aluno. E embora correto, não é o ideal, pois em uma escola temos também professores, diretores, secretárias, todos pessoas. Portanto, para exemplificar uma classe em um sistema escolar, utilizaremos o termo adequado, “Aluno”.

EM POUCAS PALAVRAS

Você viu que criar uma classe é uma tarefa até simplória. O grande desafio reside na tarefa de construir sua estrutura, alimentá-la de forma correta. É o que veremos nos próximos tutoriais.

Espero que tenham realmente compreendido o que é orientação a objetos e as vantagens de se programar orientado a objetos. Bem como sua importância nos paradigmas da programação, juntamente com o conceito de classes “que foi bastante explorado neste tutorial.