Assim como atributos, métodos são relativos a uma classe e as suas descrições fazem parte da descrição da classe. Um método é representado por uma operação que realiza ações e modifica os valores dos atributos do objeto responsável pela execução do método. Em Java, métodos são especificados da seguinte maneira:
class Conta {
private double saldo;
private long numero;
void credito(double val) {
saldo = saldo + val;
}
void debito(double val) {
saldo = saldo - val;
}
}
onde indica-se primeiro o tipo do valor a ser retornado pelo
método, seguido pelo nome da método e uma lista, possivelmente
vazia, indicando o tipo e o nome dos argumentos a serem recebidos
pelo método. Usa-se void para indicar que o método
não retorna nenhum valor, apenas altera os valores dos atributos
de um objeto. Os métodos que retornam valores como resultado
usam o comando return, da mesma maneira como usa-se
este comando para definir atributos derivados.Considerando o exemplo acima, a execução do método debito com argumento 20 altera o saldo da conta bancária relativa, o qual será decrementado de 20. De uma forma geral, métodos são definidos da seguinte maneira:
TipoDeRetorno nomeDoMetodo (Parâmetros) {
Corpo
}
onde Corpo consiste na sequência de comandos
que determinam as ações do método.
Estes comandos podem realizar tanto simples atualizações dos
atributos de um objeto, conforme ilustrado acima, quanto
ações mais complexas como se comunicar com outros objetos.De fato, os objetos de um sistema orientado a objetos estão sempre se comunicando para realizar tarefas. Essa comunicação é feita através da troca de mensagens. Cada mensagem é uma requisição para que um objeto execute uma operação específica. Para requisitar que um objeto obj execute uma operação op (sem argumentos) escrevemos obj.op() em Java, o que indica que durante a execução a mensagem op() será enviada ao objeto obj.
Por exemplo, podemos especificar que os objetos da classe Conta se comunicam com a tela do computador, a qual é representada em Java por um objeto especial, pré-definido, chamado `System.out'. Uma das operações que este objeto pode realizar é println, que mostra valores passados como argumentos: strings, inteiros, reais, etc. Para imprimir valores na tela temos que enviar uma mensagem para `System.out' requisitando a execução do método println. Assim, podemos facilmente definir um método para imprimir o saldo de uma conta, como ilustrado a seguir:
class Conta {
private double saldo;
private long numero;
void credito(double val) {
saldo = saldo + val;
}
void debito(double val) {
saldo = saldo - val;
}
void printSaldo() {
System.out.println("Conta: " + numero + " Saldo: R$" + saldo);
}
}
Através do método print_saldo, um objeto de
Conta se comunica com a tela do computador.
Na prática, esta comunicação se daria não em
Conta, mas em uma classe que representasse uma
interface de objetos de Conta com usuários.
Note que concatenação de strings é representada por
+ e os valores de outros tipos são automaticamente
convertidos para strings.
|
Paulo Borba (phmb@di.ufpe.br) |