Programação Orientada a Objectos – Parte 2
Dando prosseguimento a nossa série de artigos sobre POO, hoje vamos falar um pouco sobre as classes e interfaces.
As Classes e Estruturas
Como temos vindo a referir, nas linguagens orientadas a objectos, existe o conceito de classes. Quando falamos de classes, podemos também estende-las a estruturas. De facto, para os programadores de C++ classe não é mais do que uma estrutura que se comporta de forma diferente.
Uma classe é um pedaço de código onde podemos definir um conjunto de dados e ao mesmo tempo alguns métodos (funções ou procedimentos) que nos permitirão aceder esses dados.
Quando definimos uma classe, o que estamos a fazer é criar um modelo, a partir do qual podemos criar objectos na memória. Portanto, a classe é o modelo com o qual podemos criar novos objectos. Para criar algo “palpável” a partir de uma classe, devemos criar (instanciar) na memória um novo objecto do tipo da classe, ou seja, instanciámos um novo objecto da classe. A partir deste momento teremos algo real com que podemos trabalhar: uma instância da classe, quer dizer que, a definição feita na classe converteu-se em objecto que podemos acessa-lo e começar a utiliza-lo, dando novos valores aos dados que o mesmo manipula e utilizando as funções que nos permitem manipular tais dados.
A principal diferença entre uma classe e uma estrutura está na forma em que se criam os objectos que representam essas “ideias”. Os objectos criados a partir das classes são objectos por referência, isto é, se declararmos uma variável para manipular esse objecto, o que teremos será uma referência (ou ponteiro) para um endereço de memória onde realmente está o objecto. Enquanto que os objectos criados a partir de uma estrutura são armazenadas de forma diferente, em vez de “apontar” para um endereço de memória em que se encontra o objecto, é como se as variáveis declaradas como estruturas fossem realmente o objecto permitindo-nos fazer certas operações e manipulações que os objectos obtidos a partir de uma classe não podem realizar da mesma forma. Mais adiante (próximos artigos) veremos isto com mais detalhes.
NOTA: Classes
Em .NET sempre utilizamos uma classe para escrever qualquer tipo de código. Portanto, tudo o que fazemos em .NET, devemos fazê-lo dentro que uma classe. Isto não quer dizer que sempre teremos que usar as características da POO, já que se se queremos fazer simplesmente uma aplicação que exibe uma mensagem no console (cmd), o código não tem porque utilizar a herança, o polimorfismo ou o encapsulamento, basta escrevermos o código que mostra a mensagem e o problema estará resolvido, mas o que se pode fazer é utilizar algumas das “outras” vantagens que a programação orientada a objectos nos oferece.
Gostaria de continuar com Interfaces, mas infelizmente o sono conseguiu me derrotar. Até a próxima.