Há dois tipos de métodos: métodos incorporados (vistos anteriormente) e métodos personalizados (essa aula)
Os métodos são blocos de código que executam uma tarefa específica e podem ser reutilizados em diferentes partes do programa. Um método pode receber parâmetros, processar informações e retornar um resultado.
Métodos personalizados em Java são equivalentes às funções de outras linguagens como JavaScript ou Python.
Métodos existentes (ou incorporados), também conhecidos como métodos integrados ou de biblioteca, são funções predefinidas que já vêm como parte da biblioteca padrão do Java (Java Development Kit - JDK). Eles são projetados para realizar tarefas comuns e otimizadas, o que economiza tempo e esforço do desenvolvedo
Características dos métodos personalizados em Java:
Componentes de um método:
for-each percorrendo o array
primeiros5Pares. A cada iteração, a variável
numero recebe automaticamente o próximo valor
do array, sem precisar de índice.
public class TiposDeMetodos {
public static void main(String[] args) {
// Método sem parâmetros e sem retorno
imprimirMensagem();
// Método com parâmetros e sem retorno
imprimirSaudacao("João");
// Método sem parâmetros e com retorno
int numeroDaSorte = gerarNumeroDaSorte();
System.out.println("Número da sorte: " + numeroDaSorte);
// Método com parâmetros e com retorno
int soma = somarNumeros(5, 7);
System.out.println("Soma: " + soma);
// Método que recebe um array como parâmetro
int[] numeros = {1, 2, 3, 4, 5};// criação de vetor será visto adiante
double media = calcularMedia(numeros);
System.out.println("Média: " + media);
// Método que retorna um array
int[] primeiros5Pares = obterNumerosPares(5);// criação de vetor será visto adiante
System.out.print("Primeiros 5 números pares: ");// loop for usado para gerar os número do vetor.
for (int numero : primeiros5Pares) {
System.out.print(numero + " ");
}
System.out.println();
}
// Método sem parâmetros e sem retorno (void)
public static void imprimirMensagem() {
System.out.println("Bem-vindo ao sistema!");
}
// Método com parâmetros e sem retorno(void)
public static void imprimirSaudacao(String nome) {
System.out.println("Olá, " + nome + "!");
}
// Método sem parâmetros e com retorno
public static int gerarNumeroDaSorte() {
// Gera um número aleatório entre 1 e 100
return (int)(Math.random() * 100) + 1;
}
// Método com parâmetros e com retorno
public static int somarNumeros(int a, int b) {
return a + b;
}
// Método que recebe um array como parâmetro
public static double calcularMedia(int[] numeros) {
int soma = 0;
for (int numero : numeros) {
soma += numero;
}
return (double) soma / numeros.length;
}
// Método que retorna um array
public static int[] obterNumerosPares(int quantidade) {
int[] pares = new int[quantidade];
for (int i = 0; i < quantidade; i++) {
pares[i] = i * 2 + 2; // 2, 4, 6, 8, ...
}
return pares;
}
}
Bem-vindo ao sistema!
Olá, João!
Número da sorte: 73
Soma: 12
Média: 3.0
Primeiros 5 números pares: 2 4 6 8 10
Abra o One Compiler para Java: clique aqui!
Execute o código abaixo no One Compiler e observe os resultados. Compare as diferenças de resultados com aqueles do código acima.
public class TiposDeMetodos {
public static void main(String[] args) {
// Método sem parâmetros e sem retorno
imprimirMensagem();
// Método com parâmetros e sem retorno
imprimirSaudacao("Ananda e Caio");
// Método sem parâmetros e com retorno
int numeroDaSorte = gerarNumeroDaSorte();
System.out.println("Numero da sorte: " + numeroDaSorte);
// Método com parâmetros e com retorno
int soma = somarNumeros(3, 4);
System.out.println("Soma: " + soma);
// Método com parâmetros e com retorno
int produto = multiplicarNumeros(3, 4);
System.out.println("produto: " + produto);
// Método que recebe um array como parâmetro
int[] numeros = {3, 4, 7, 6, 7, 8};// criação de vetor será visto adiante
double media = calcularMedia(numeros);
System.out.println("Media: " + media);
// Método que retorna um array
int[] primeiros10Pares = obterNumerosPares(10);// criação de vetor será visto adiante
System.out.print("Primeiros 10 números pares: ");// loop for usado para gerar os número do vetor.
for (int numero : primeiros10Pares) {
System.out.print(numero + " ");
}
System.out.println();
}
// Método sem parâmetros e sem retorno (void)
public static void imprimirMensagem() {
System.out.println("Bem-vindo ao sistema!");
}
// Método com parâmetros e sem retorno(void)
public static void imprimirSaudacao(String nome) {
System.out.println("Ola, " + nome + "!");
}
// Método sem parâmetros e com retorno
public static int gerarNumeroDaSorte() {
// Gera um número aleatório entre 1 e 100
return (int)(Math.random() * 100) + 1;
}
// Método com parâmetros e com retorno
public static int somarNumeros(int a, int b) {
return a + b;
}
// Método que recebe um array como parâmetro
public static double calcularMedia(int[] numeros) {
int soma = 0;
for (int numero : numeros) {
soma += numero;
}
return (double) soma / numeros.length;
}
// Método que retorna um array
public static int[] obterNumerosPares(int quantidade) {
int[] pares = new int[quantidade];
for (int i = 0; i < quantidade; i++) {
pares[i] = i * 2 + 2; // 2, 4, 6, 8, ...
}
return pares;
}
public static int multiplicarNumeros(int c, int d) {
return c * d;
}
}
No main do código abaixo, você define:
Chama o método:
int contador = contarCaractere(texto, caractere);
Dentro de contarCaractere(String texto, char c):
O return volta para o main, e você imprime:
System.out.println("O caractere '" + caractere + "' aparece " + contador + " vezes no texto.");
public class ContagemCaracteres {
public static void main(String[] args) {
String texto = "Ananda";
texto = texto.toLowerCase();
char caractere = 'a';
int contador = contarCaractere(texto, caractere);
System.out.println("O caractere '" + caractere + "' aparece " + contador + " vezes na palavra (ou no texto):" + texto);
}
public static int contarCaractere(String texto, char c) {
int contador = 0;
for (int i = 0; i < texto.length(); i++) {
if (texto.charAt(i) == c) {
contador++;
}
}
return contador;
}
}
O caractere 'a' aparece 3 vezes na palavra (ou no texto): Ananda
O que são parâmetros e argumentos?
Em outras palavras: quando você chama contarCaractere(texto, caractere);, o valor da variável texto vai para o parâmetro String texto (dentro do método) e o valor de caractere vai para o parâmetro char c.
Abra o One Compiler para Java: clique aqui!
Execute o código abaixo no One Compiler e observe os resultados. Compare as diferenças de resultados com aqueles do código acima.
public class ContagemCaracteres {
public static void main(String[] args) {
String texto = "Ludmila estava mal de saude.";
texto = texto.toLowerCase();
char caractere = 'l';
int contador = contarCaractere(texto, caractere);
System.out.println("O caractere '" + caractere + "' aparece " + contador + " vezes na palavra (ou no texto):" + texto);
}
public static int contarCaractere(String texto, char c) {
int contador = 0;
for (int i = 0; i < texto.length(); i++) {
if (texto.charAt(i) == c) {
contador++;
}
}
return contador;
}
}
Reforce o conteúdo desta aula com mais dois exercícios práticos: