Classes descrevem os tipos de objetos que constituem os sistemas computacionais. Assim um programa (isto é, a descrição de um sistema) deve conter um conjunto de classes associadas. Mas o que é exatamente um programa em Java? Em particular, como podemos especificar as ações iniciais a serem tomadas por um sistema?
As perguntas acima podem ser facilmente respondidas usando as idéias básicas do paradigma de orientação a objetos: um sistema também pode ser visto como um objeto! De fato, um sistema nada mais é do que um objeto tendo um método especial que é responsável pela execução das ações iniciais do sistema. Naturalmente, estas ações iniciais correspondem a criação dos outros objetos que fazem parte do sistema, bem como o envio de mensagens para estes objetos, o que eventualmente resulta em ativação de menus e interfaces gráficas, requisição para entrada de dados, etc.
Como o sistema também é representado por um objeto, o mesmo tem que ter uma classe associada. Podemos ver os objetos desta classe como instâncias diferentes do sistema que desejamos implementar. Por exemplo, a seguinte declaração em Java define uma classe de sistemas de contas que simplesmente exemplificam a utilização de contas bancárias:
class SistemaContas {
public static void main(String argv[]) {
Conta c1, c2, c3;
c1 = new Conta(100.00,12345);
c1.print_saldo();
c1.credito(7.34);
c1.debito(1.00);
c1.print_saldo();
c1.credito(5.66);
c1.print_saldo();
c2 = c1;
c2.credito(55.00);
c2.print_saldo();
c1.print_saldo();
c3 = new Conta(85.00,10);
}
}
Java assume que o método especial main especifica as
ações a serem tomadas pelos sistema. De fato, quando executamos o
interpretador de Java com o nome de uma classe tendo um método
main no formato acima, é criado um objeto da classe
(no nosso caso, um sistema de contas) e automaticamente invocado
o método main deste objeto.
Note que os objetos de uma classe representando instâncias de um
sistema são bem peculiares, não tendo atributos, mas apenas o
método main. Agora podemos dizer o que é um programa em Java: um conjunto de classes, incluindo uma classe especial na forma apresentada acima representando as possíveis instâncias do sistema sendo descrito.
Nada impede que o método especial main seja utilizado em outras classes também. Na verdade, uma boa estratégia para se testar um sistema por partes é definir um método main para cada classe e testar a classe individualmente. O corpo do método main deve conter os testes que desejamos realizar, como ilustrado no exemplo acima. O teste pode então ser realizado executando-se o interpretador Java com o nome da classe que desejamos testar como argumento.
|
Paulo Borba (phmb@di.ufpe.br) |