Iremos continuar tratando de orientação a objetos no Java.
Esta é o segundo artigo da série sobre o assunto, onde agora iremos definir classes e mostrar sua estrutura definindo suas regras de utilização.
Classe (class), tipo de objeto, é um modelo ou uma especificação
para certos objetos, uma descrição genérica dos objetos individuais que
pertencem a um conjunto.
Utilizamos as classes em programação para conseguir modelar os objetos
a serem representados e a implementação do modelo.
Modelar um objeto é criar uma descrição geral para um conjunto de
objetos que se deseja utilizar no programa. Vamos considerar, por
exemplo, uma caneta tem sua forma, sua cor, etc. Este conjunto
de elementos que descrevem a caneta poderiam ser agrupados constituindo
um modelo para canetas. Podíamos ainda formar outros objetos que
iriam possuir outros atributos, uma certa combinação de atributos
torna-se conveniente para descrever apenas um conjunto particular de objetos.
Levamos em consideração também que um objeto pode ser modelado por seu
tipo de utilização e não apenas por seus atributos. Por exemplo, a caneta
é capaz de escrever até que tenha carga suficiente para seu funcionamento.
Diante disto, a modelagem de uma classe envolve a definição de atributos que
irão conter os dados que descreverão a aparência e o estado do objeto e
também as operações que podem ser realizadas com estes dados sobre o objeto.
Ao se implementar uma classe estaremos utilizando uma linguagem de
programação e automaticamente levantando outras questões sobre sua
utilização, como o inter-relacionamento dos modelos entre si, sua
utilização em outros projetos (reutilização) e evidentemente a
especificação do modelo em si.
Quando declaramos uma classe, estamos definindo um novo tipo de objeto
que poderá ser utilizado pelo programa. Esses novos tipos terão atributos
(variáveis que conterão os dados) e métodos (funções que manipulam
tais dados).
Aos poucos vamos percebendo que esta forma de programação tem maiores de
chances de organização e reutilização de código.
Vamos utilizar um exemplo de uma aplicação como um editor de textos.
Iríamos criar a classe *Parágrafo*, que teria como um de seus atributos
um vetor de string para armazenar o texto do parágrafo e também métodos que
realizem operações sobre este atributo. Cada vez que um novo parágrafo fosse
acionado, a aplicação 'editor' criaria um novo objeto da classe *Parágrafo*,
contendo as informações particulares do novo trecho de texto. A instanciação
é justamente a criação de novos objetos de uma classe.
Uma classe descreve as propriedades relevantes de uma aplicação em termos
de sua estrutura (dados) e de seu comportamento (operações) e ignora o
restante. No caso da classe *Parágrafo*, que não fazia relações entre os
parágrafos do texto.
Objetos podem ser descritos de diversas formas, o importante é buscarmos
a representação mais adequada para um determinado problema, ou seja, um
modelo adequado para os objetos que serão representados. A maneira correta
de utilizar a proposta da orientação a objetos é que devemos criar novas
classes capazes para melhor tratar os dados que serão usados na aplicação.
A programação de uma nova classe em Java é algo muito simples, desde que
saibamos descrever um objeto, a modelagem de objetos é uma tarefa mais
complexa do que a sua programação como uma classe.