Introdução aos Métodos em Java
Enquanto variáveis e constantes são projetadas para armazenar dados, os métodos servem para encapsular um conjunto de instruções que executam uma tarefa específica ou calculam um valor. Em Java, toda a lógica de um método deve ser definida dentro de uma classe.
A sintaxe geral para a declaração de um método é a seguinte:
[modificadores] tipo_de_retorno nome_do_metodo([parâmetros]){
// corpo do método
}
Na declaração de um método, a especificação de modificadores e parâmetros é opcional.
Por padrão, a classe principal de um programa Java contém o método main
, que funciona como ponto de partida para a execução da aplicação.
public static void main(String[] args) {
System.out.println("Olá, mundo!");
}
Neste exemplo, as palavras-chave public
e static
são modificadores que definem, respectivamente, a acessibilidade e o contexto do método. A palavra-chave void
especifica o tipo de retorno, nesse caso indicando que o método não retorna nenhum valor ao código que o chamou. O nome do método é main
e, entre parênteses, são declarados seus parâmetros, String[]
args. Finalmente, o corpo do método, delimitado por chaves, contém as instruções a serem executadas.
Para ilustrar, vamos definir métodos adicionais na mesma classe:
public class Program {
public static void main (String args[]) {
}
void hello() {
System.out.println("Hello");
}
void welcome() {
System.out.println("Welcome to Java");
}
}
Aqui, foram criados dois novos métodos, hello
e welcome
. Cada um é responsável por imprimir uma mensagem específica no console. Ambos foram definidos dentro da classe Program
, juntamente com o método main
.
No entanto, ao compilar e executar o código acima, o console permanecerá em branco. Isso ocorre porque, embora os métodos hello
e welcome
tenham sido definidos, eles não foram chamados em nenhum ponto do programa. A execução padrão em Java inicia e termina no método main
. Portanto, para que outros métodos sejam executados, é preciso que sejam chamados a partir do main
.
A chamada de um método ocorre da seguinte forma:
nome_do_metodo([argumentos]);
Para chamar os métodos hello
e welcome
, é possível modificar o método main
da seguinte maneira:
public class Program {
public static void main (String args[]) {
hello();
welcome();
welcome();
}
static void hello() {
System.out.println("Hello");
}
static void welcome() {
System.out.println("Welcome to Java");
}
}
Dentro do método main
, o método hello
é chamado uma vez, e o método welcome
é chamado duas vezes. Isso demonstra uma das principais vantagens dos métodos: a capacidade de encapsular um conjunto de ações em um bloco de código reutilizável, que pode ser chamado múltiplas vezes em diferentes locais do programa. Como hello
e welcome
não possuem parâmetros, parênteses vazios são utilizados em suas chamadas.
⚠️ É fundamental notar que, para chamar um método diretamente de
main
quando ambos pertencem à mesma classe, esse método também deve ser declarado com o modificadorstatic
.
Após a compilação e execução, o programa produzirá a seguinte saída no console:
Hello Welcome to Java Welcome to Java
No próximo tema vamos explorar mais sobre os métodos, incluindo como passar parâmetros e retornar valores.
📝 Exercícios
Tarefa
Observe o código abaixo. Sem compilá-lo, tente responder às perguntas que se seguem.
public class checkCode {
public static void main(String[] args) {
// Chamada para o método que verifica o status
checkStatus();
}
// Método que deveria imprimir o status do sistema
void checkStatus() {
System.out.println("Sistema operacional: OK.");
System.out.println("Rede: Conectada.");
}
}
Perguntas:
- Este código será compilado e executado com sucesso?
- Se não, qual é o erro e por que ele acontece, com base no que foi explicado no artigo?
- Como você corrigiria o código para que ele funcione corretamente, fazendo apenas uma alteração?
Resposta
checkStatus
não é estático, enquanto o método main
é estático. Em Java, métodos não estáticos não podem ser chamados diretamente de métodos estáticos sem uma instância da classe.
static
ao método checkStatus
, tornando-o assim compatível com a chamada feita no método main
:
public class checkCode {
public static void main(String[] args) {
// Chamada para o método que verifica o status
checkStatus();
}
// Método que deveria imprimir o status do sistema
static void checkStatus() {
System.out.println("Sistema operacional: OK.");
System.out.println("Rede: Conectada.");
}
}