Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
INTRODUÇÃO À ORIENTA ÇÃO A OBJET OS<br />
Imagine o exemplo de código acima necessário para manipular a informação de todos os alunos da FIC,<br />
cerca de oito mil alunos. Imagine a dificuldade de lidar com tantas variáveis ? Além disso, o número<br />
máximo de alunos suportados pelo sistema deveria ser previamente conhecido.<br />
Ainda usando programação estruturada, uma forma um pouco melhor de representação dos dados seria<br />
o uso de informações indexadas em arrays:<br />
String[] nome = new String[5000];<br />
int[] matricula = new int[5000];<br />
// Variáveis que armazenam as informações sobre o RG:<br />
nome[0] = "Fernando Henrique Gomes";<br />
matricula[0] = 903564756;<br />
nome[1] = "Ciro Cardoso";<br />
matricula [1] = 787564234;<br />
// Mesmo assim seriam necessárias variáveis de indexação (confusas):<br />
int fhg = 0;<br />
int cardoso = 1;<br />
// O uso de dados indexados era o paradigma vigente antes da popularização do<br />
// uso de Orientação a Objetos. Linguagens antigas, como Cobol, tem a indexação<br />
// como formato básico de acesso a dados na memória. Cobol usa inclusive o tamanho<br />
// dos dados como o separador dos valores gravados na memória.<br />
Outro problema, o principal, é a representação feita por tipos de dados, ou seja, o nome é uma variável<br />
do tipo String a o número de matrícula é uma variável do tipo inteiro. – não há nada no código que os<br />
vincule a uma carteira de estudante.<br />
Note que a nível conceitual, existe uma associação entre as variáveis 'nome' e 'numero',. Elas são parte<br />
do mesmo "objeto", nesse exemplo, uma carteira de estudante.<br />
No final dos anos setenta, com a popularização dos computadores pessoais e o aumento da presença da<br />
informática em nossa sociedade, pesquisadores começaram a notar a necessidade de representar os<br />
dados de forma mais fiel à forma como eles eram definidos em cada problema. Ou seja, uma carteira de<br />
estudante deveria ter um tipo de dado que representasse a sua estrutura, tal qual ela era conceituada no<br />
mundo real (e não um conjunto de variáveis alocadas na memória). Surgiu a Orientação a Objetos,<br />
paradigma que iremos estudar a partir de agora.<br />
Tipos agregados de dados<br />
A maioria das linguagens de programação suporta o conceito de variáveis tipadas, ou seja, uma variável<br />
pode ser do tipo int, double, char, etc. Embora essas linguagens possuam um bom número de tipos prédefinidos,<br />
seria mais interessante que o programador pudesse definir seus próprios tipos de dados,<br />
como, por exemplo, o tipo "carteira de estudante".<br />
Essa questão é resolvida através da implementação de Tipos Agregados de Dados (em algumas<br />
linguagens, também conhecidos como Tipos Estruturados de Dados ou Registros).<br />
39