Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Prática de Métodos | Métodos
Java Avançado

bookPrática de Métodos

Prática

Métodos podem ser desafiadores de entender, então este capítulo fornece exemplos de vários métodos em ação, mostrando como funcionam, onde utilizá-los e como escrever e combinar múltiplos métodos de forma eficaz.

Exemplo 1

Vamos começar com um método que recebe um array do tipo int e o inverte, de modo que o último valor se torne o primeiro e o primeiro se torne o último:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { static int[] flipIntArray(int[] array) { int[] result = new int[array.length]; int index = 0; for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } static void printIntArrayToTheConsole(int[] array) { for (int element : array) { System.out.print(element + " "); } System.out.println(); } public static void main(String[] args) { // do not modify the code below int[] firstArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] secondArray = {0, 2, 4, 6, 8, 10, 12, 14, 16}; printIntArrayToTheConsole(flipIntArray(firstArray)); printIntArrayToTheConsole(flipIntArray(secondArray)); } // do not modify the code above }
  • Primeiro, observe o método flipIntArray na linha 4, que utiliza um loop que conta a partir do final do array e armazena seus valores em um novo array do mesmo tamanho. Há também uma variável index na linha 6 que é incrementada para armazenar os valores no array result;

  • Em seguida, você pode ver o método na linha 14 do capítulo anterior, que utilizo para imprimir o array em apenas uma linha de código;

  • Agora, vamos para algo interessante. Você pode ver nas linhas 25-26 que estou passando um método como parâmetro dentro de outro método. Isso ocorre porque estou utilizando um método que retorna int[] dentro de um método que recebe int[] como parâmetro, economizando assim a memória alocada para criação de variáveis. Podemos ver que nossos métodos estão funcionando e exibindo os valores corretos.

Exemplo 2

Suponha que precisamos escrever um método que calcule o fatorial, recebendo uma variável inteira como entrada.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
package com.example; // do not modify the code below this comment public class Main { // method to calculate the factorial of a number static int calculateFactorial(int input) { int result = 1; // loop to calculate factorial by multiplying each number from 1 to input for (int i = 1; i <= input; i++) { result = result * i; } // return the final result of the factorial calculation return result; } public static void main(String[] args) { // initializing the first number for factorial calculation int first = 5; // initializing the second number for factorial calculation int second = 7; // initializing the third number for factorial calculation int third = 4; // calculating and printing the factorial of the first number System.out.println("Factorial of the first number = " + calculateFactorial(first)); // calculating and printing the factorial of the second number System.out.println("Factorial of the second number = " + calculateFactorial(second)); // calculating and printing the factorial of the third number System.out.println("Factorial of the third number = " + calculateFactorial(third)); } }

Neste exemplo, escrevemos um método que multiplica a variável acumuladora pelos números de 1 até o número fornecido para calcular o fatorial. É uma abordagem direta, e você pode ver como utilizamos esse método várias vezes no método main, o que economiza espaço e melhora a legibilidade do código. Em seguida, usamos nosso método dentro do System.out.println porque o método retorna um valor int.

Exemplo 3

Vamos escrever um método que cria uma abreviação a partir de um array de strings.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829
package com.example; // do not modify the code below this comment public class Main { // method to create abbreviation by taking first letter of each word static String makeAbbreviation(String[] input) { StringBuilder result = new StringBuilder(); // iterate through each word and append the first letter to result for (String word : input) { result.append(word.toUpperCase().charAt(0)); } // return the abbreviation as a string return result.toString(); } public static void main(String[] args) { // initializing arrays with words for abbreviation String[] firstArray = {"united", "nations"}; String[] secondArray = {"North", "Atlantic", "Treaty", "Organization"}; String[] thirdArray = {"Oh", "my", "God"}; // printing abbreviation for the first array System.out.println(makeAbbreviation(firstArray)); // printing abbreviation for the second array System.out.println(makeAbbreviation(secondArray)); // printing abbreviation for the third array System.out.println(makeAbbreviation(thirdArray)); } }

Neste método, utilizamos a classe StringBuilder para chamar o método append() e adicionar a primeira letra maiúscula a uma string inicialmente vazia. Dessa forma, iteramos por cada elemento do array, pegamos a letra na posição zero (a primeira letra de cada palavra), convertendo-a para maiúscula usando o método toUpperCase() e adicionando ao nosso resultado com o método append(). Por fim, utilizamos o método toString() para converter nosso StringBuilder em String.

1. O que é um valor de retorno em um método?

2. O que um método void retorna?

3. Um método pode ser utilizado dentro de outro método?

question mark

O que é um valor de retorno em um método?

Select the correct answer

question mark

O que um método void retorna?

Select the correct answer

question mark

Um método pode ser utilizado dentro de outro método?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

bookPrática de Métodos

Prática

Métodos podem ser desafiadores de entender, então este capítulo fornece exemplos de vários métodos em ação, mostrando como funcionam, onde utilizá-los e como escrever e combinar múltiplos métodos de forma eficaz.

Exemplo 1

Vamos começar com um método que recebe um array do tipo int e o inverte, de modo que o último valor se torne o primeiro e o primeiro se torne o último:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { static int[] flipIntArray(int[] array) { int[] result = new int[array.length]; int index = 0; for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } static void printIntArrayToTheConsole(int[] array) { for (int element : array) { System.out.print(element + " "); } System.out.println(); } public static void main(String[] args) { // do not modify the code below int[] firstArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int[] secondArray = {0, 2, 4, 6, 8, 10, 12, 14, 16}; printIntArrayToTheConsole(flipIntArray(firstArray)); printIntArrayToTheConsole(flipIntArray(secondArray)); } // do not modify the code above }
  • Primeiro, observe o método flipIntArray na linha 4, que utiliza um loop que conta a partir do final do array e armazena seus valores em um novo array do mesmo tamanho. Há também uma variável index na linha 6 que é incrementada para armazenar os valores no array result;

  • Em seguida, você pode ver o método na linha 14 do capítulo anterior, que utilizo para imprimir o array em apenas uma linha de código;

  • Agora, vamos para algo interessante. Você pode ver nas linhas 25-26 que estou passando um método como parâmetro dentro de outro método. Isso ocorre porque estou utilizando um método que retorna int[] dentro de um método que recebe int[] como parâmetro, economizando assim a memória alocada para criação de variáveis. Podemos ver que nossos métodos estão funcionando e exibindo os valores corretos.

Exemplo 2

Suponha que precisamos escrever um método que calcule o fatorial, recebendo uma variável inteira como entrada.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
package com.example; // do not modify the code below this comment public class Main { // method to calculate the factorial of a number static int calculateFactorial(int input) { int result = 1; // loop to calculate factorial by multiplying each number from 1 to input for (int i = 1; i <= input; i++) { result = result * i; } // return the final result of the factorial calculation return result; } public static void main(String[] args) { // initializing the first number for factorial calculation int first = 5; // initializing the second number for factorial calculation int second = 7; // initializing the third number for factorial calculation int third = 4; // calculating and printing the factorial of the first number System.out.println("Factorial of the first number = " + calculateFactorial(first)); // calculating and printing the factorial of the second number System.out.println("Factorial of the second number = " + calculateFactorial(second)); // calculating and printing the factorial of the third number System.out.println("Factorial of the third number = " + calculateFactorial(third)); } }

Neste exemplo, escrevemos um método que multiplica a variável acumuladora pelos números de 1 até o número fornecido para calcular o fatorial. É uma abordagem direta, e você pode ver como utilizamos esse método várias vezes no método main, o que economiza espaço e melhora a legibilidade do código. Em seguida, usamos nosso método dentro do System.out.println porque o método retorna um valor int.

Exemplo 3

Vamos escrever um método que cria uma abreviação a partir de um array de strings.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829
package com.example; // do not modify the code below this comment public class Main { // method to create abbreviation by taking first letter of each word static String makeAbbreviation(String[] input) { StringBuilder result = new StringBuilder(); // iterate through each word and append the first letter to result for (String word : input) { result.append(word.toUpperCase().charAt(0)); } // return the abbreviation as a string return result.toString(); } public static void main(String[] args) { // initializing arrays with words for abbreviation String[] firstArray = {"united", "nations"}; String[] secondArray = {"North", "Atlantic", "Treaty", "Organization"}; String[] thirdArray = {"Oh", "my", "God"}; // printing abbreviation for the first array System.out.println(makeAbbreviation(firstArray)); // printing abbreviation for the second array System.out.println(makeAbbreviation(secondArray)); // printing abbreviation for the third array System.out.println(makeAbbreviation(thirdArray)); } }

Neste método, utilizamos a classe StringBuilder para chamar o método append() e adicionar a primeira letra maiúscula a uma string inicialmente vazia. Dessa forma, iteramos por cada elemento do array, pegamos a letra na posição zero (a primeira letra de cada palavra), convertendo-a para maiúscula usando o método toUpperCase() e adicionando ao nosso resultado com o método append(). Por fim, utilizamos o método toString() para converter nosso StringBuilder em String.

1. O que é um valor de retorno em um método?

2. O que um método void retorna?

3. Um método pode ser utilizado dentro de outro método?

question mark

O que é um valor de retorno em um método?

Select the correct answer

question mark

O que um método void retorna?

Select the correct answer

question mark

Um método pode ser utilizado dentro de outro método?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5
some-alt