terça-feira, 23 de março de 2010

[Java] Declarar e invocar um método


Como já foi abordado em post anterior sobre a declaração de um método, não será reescrito o post. Para visualizar sobre a sintaxe da declaração de um método, o que é um método e exemplos veja este post.

Invocando um método

Após construídos, os métodos podem ser invocados para realizar a tarefa a qual foram escritos. Para invocar um método que está em outra classe, deve-se criar um objeto do tipo da classe que contém o método a ser invocado e apartir deste objeto invocar o método. Quando o método está na mesma classe, basta apenas invocá-lo. Complicado? Nem tanto! Observe o exemplo abaixo (o mesmo do post anterior) para compreender melhor.

Exemplo:

Neste exemplo as classes diferentes são coloridas diferentemente, a vermelha contém apenas o método multiplica enquanto a azul possui o método main e o método multiplica. O método multiplica que está na mesma classe do método principal foi destacado de amarelo para melhorar a sua visualização.

//Operacao.java
public class Operacao {
public void multiplica(int x, int y){
int mult;
mult = x*y;
System.out.println("Multiplicação em outra classe: " + mult);
}
}

//TestaOperacoes.java
public class TestaOperacoes {

static public void multiplica(int x, int y){
int mult;
mult = x*y;
System.out.println("Multiplicação da mesma classe: " + mult);
}

public static void main(String[] args) {
int x = 5;
int y = 7;

//Testa multiplica em Operacao.java
Operacao operacoes = new Operacao();
operacoes.multiplica(x, y);

//Testa multiplica em TestaOperacoes.java
multiplica(x,y);
}
}
O resultado da execução deste exemplo seria:

Multiplicação em outra classe: 35
Multiplicação da mesma classe: 35

Como pode ser percebido, ao se invocar o método multiplica presente em outra classe foi necessário criar um objeto daquela classe para poder invocá-lo no seguinte formato: [objeto].[método]([atributosQuandoExistentes]);

Se o método chamado (calling) estiver presente na mesma classe que o método que o invoca (worker) não é necessário criar um objeto daquela classe que os contém. Assim a invocação fica no seguinte formato: [método]([atributosQuandoExistentes]);

Quando um método de trabalho (worker) for declarado como static, independente de sua localização (na mesma classe do método que o chama ou não) a chamada a este método pode ser feita da seguinte forma: [classeAQuePertence].[método]([atributosQuandoExistentes]);

Quando um método é invocado a execução do método de chamada (calling) "para" na linha em que foi feita a chamada ao outro método e retorna somente após a execução do método de trabalho (worker) chamado. métodos worker podem ou não exigir valores a serem entregues quando chamados, esses valores são comumente chamados de parâmetros. Da mesma forma métodos podem ou não retornar valor. Quando um método retorna nenhum valor ele é declarado como void. Para melhor entender, observe a figura abaixo.



Nenhum comentário:

Postar um comentário