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étodoApó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.