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
course content

Conteúdo do Curso

Java Avançado

Java Avançado

1. Estrutura Profunda do Java
2. Métodos
3. String Avançado
4. Classes
5. Classes Avançadas

book
Prá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

course content

Conteúdo do Curso

Java Avançado

Java Avançado

1. Estrutura Profunda do Java
2. Métodos
3. String Avançado
4. Classes
5. Classes Avançadas

book
Prá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