Ainda não é hora de detalhar a implementação da Orientação a Objetos(OO) do Ruby, mas para melhor compreensão dos próximos posts do tutorial, vou definir brevemente alguns termos básicos sobre o assunto.
Classes
As classes são um dos principais elementos da OO. De forma simplificada, elas são modelos de conceitos existentes no mundo real. Ou seja, uma classe descreve como é este determinado conceito que ela está representando. Vamos considerar para efeitos de exemplificação uma classe que representa um… Tiranossauro Rex. Esta classe, assim como todas as outras, tem basicamente dois elementos:
Atributos: representam informações de vital importância para o conceito que estamos representando, e de certa forma personaliza uma ocorrênia em particular do conceito representado. Por exemplo, os atributos de um Tiranossauro Rex poderiam ser nome(sim, aqui os T-Rex têm nome), altura, peso, nível de saúde e nível de fome. Observe que estes atributos diferenciam um Tiranossauro de outro, uma vez que cada um deles teriam os seus próprios valores para cada um dos atributos. Quando implementamos uma classe através de uma linguagem de programação orientada a objetos, esses atributos são chamados de variáveis de instância.
Comportamentos: agora já sabemos que nossos queridos e dóceis T-Rex possuem atributos que definem certas características fundamentais, no entanto, filmes como Jurassic Park nos mostram que eles são muito mais do que isso. Eles podem correr, perseguir jipes, comer advogados no banheiro, apanhar do King Kong e uma infinidade de outras coisas legais. Em outras palavras, os Tiranossauros Rex possuem comportamentos, que nada mais são que as operações ou atividades que eles desempenham. E uma vez que usemos uma linguagem de programação para implementar uma classe, estes comportamentos passam a ser chamados de métodos.
Objetos
Agora já sabemos que conceitos do mundo real são esboçados através de classes, mas são apenas esboços, não existem de verdade. Uma classe que representa um Tiranossauro apenas detalha as características que ele tem e as ações que ele pode fazer, mas não representa nenhum deles em particular.
Sendo assim, para termos um T-Rex de verdade, e não apenas uma definição de classe, precisamos usar a classe que define como um Tiranossauro deve ser, e então criar uma instância desta classe, ou seja, um objeto. Desta forma, um objeto irá representar um T-Rex em particular, e aí sim poderemos fazer as coisas legais que vemos nos filmes.
Além disso, podemos criar quantos objetos quisermos, sendo que cada um deles terá as variáveis de instância e métodos que definimos na classe do objeto, que no nosso caso é uma classe que define um Tiranossauro. Além disso, os valores de suas variáveis de instância de um objeto são independentes dos valores de outros objetos, até porque isto é o que identifica um objeto específico. Sendo assim, se definirmos que a altura de um Tiranossauro Rex é 20 metros, apenas a altura daquele T-Rex será 20 metros, os outros continuarão com as suas alturas individuais inalteradas. Além disso, os valores de todas as variáveis de instância de um objeto é chamado de estado do objeto.
Considerações Finais
Basicamente, é isso que eu tenho a dizer no momento sobre orientação a objetos. De forma alguma este post pode ser encarado como uma introdução formal e profunda do assunto, mas atende perfeitamente ao propósito de definir de forma rápida conceitos cuja compreensão é necessária para o entendimento dos próximos posts. No entanto, eu ainda irei voltar neste assunto várias vezes, de forma a colocar as coisas de um jeito um pouco mais técnico, além de abordar aspectos não mencionados aqui. Entreranto, isto não quer dizer que vocês estarão livres de classes incomuns ou analogias esdrúxulas.

Comentários Recentes