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

bookSobrecarga de Métodos

Utilização de um método com diferentes parâmetros

Java permite escrever diferentes métodos com o mesmo nome. Esses métodos podem ter diferentes tipos de retorno e/ou tipos de parâmetros. Isso é feito para que possamos utilizar esses métodos com diferentes tipos. Vamos tomar como exemplo um método para imprimir um array:

Podemos escrever esse método para aceitar valores do tipo int, mas e se precisarmos imprimir um array do tipo char? Precisamos criar um método com outro nome?

Java oferece a sobrecarga de métodos para esse propósito.

Vamos analisar um exemplo de impressão de dados e inversão de um array do capítulo anterior:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627
// method to reverse an int array static int[] flipArray(int[] array) { // creating a new array to store the reversed elements int[] result = new int[array.length]; int index = 0; // iterating over the input array in reverse order for (int i = array.length - 1; i > 0; i--) { result[index] = array[i]; index++; } // returning the reversed int array return result; } // method to reverse a char array static char[] flipArray(char[] array) { // creating a new array to store the reversed elements char[] result = new char[array.length]; int index = 0; // iterating over the input array in reverse order for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } // returning the reversed char array return result; }

Sobrecaregamos o método flipArray para aceitar e retornar diferentes parâmetros: int e char. Se invocarmos este método, ele pode aceitar e retornar ambos os tipos int e char.

Agora, vamos sobrecarregar o método para exibir um array na tela. Este método também deve aceitar e retornar os tipos int e char:

Main.java

Main.java

copy
12345678910111213141516171819
// method to print an int array static void printArrayToTheConsole(int[] array) { // iterating through each element of the int array for (int element : array) { System.out.print(element + " "); } // printing a blank line after the array System.out.println(); } // method to print a char array static void printArrayToTheConsole(char[] array) { // iterating through each element of the char array for (char element : array) { System.out.print(element + " "); } // printing a blank line after the array System.out.println(); }

Aqui, sobrecarregamos o método printArrayToTheConsole para aceitar e retornar valores int e char.

Agora, vamos combinar os métodos sobrecarregados e utilizá-los no método main para um array do tipo int e um array do tipo char:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; char[] charArray = {'s', 'b', 'c', 'd', 'e', 'f', 'g'}; printArrayToTheConsole(flipArray(intArray)); printArrayToTheConsole(flipArray(charArray)); } // method to reverse an int array static int[] flipArray(int[] array) { int[] result = new int[array.length]; int index = 0; // iterating over the array in reverse order for (int i = array.length - 1; i > 0; i--) { result[index] = array[i]; index++; } return result; } // method to reverse a char array static char[] flipArray(char[] array) { char[] result = new char[array.length]; int index = 0; // iterating over the array in reverse order for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } // method to print an int array to the console static void printArrayToTheConsole(int[] array) { // printing each element of the int array for (int element : array) { System.out.print(element + " "); } System.out.println(); } // method to print a char array to the console static void printArrayToTheConsole(char[] array) { // printing each element of the char array for (char element : array) { System.out.print(element + " "); } System.out.println(); } }

Sobrecarregamos dois métodos diferentes adicionando a capacidade de utilizar esses métodos com arrays do tipo char. Também alteramos levemente os nomes desses métodos, pois agora podemos sobrecarregá-los várias vezes para aceitar e retornar valores de tipos diferentes.

Para verificar isso, criamos dois arrays diferentes, um do tipo int e outro do tipo char, e então passamos esses arrays para os métodos sobrecarregados, obtendo os resultados corretos.

Aliás, você já se deparou com métodos sobrecarregados antes. Por exemplo, o método String da classe substring() é sobrecarregado e pode ter um parâmetro, int beginIndex, ou dois parâmetros, int beginIndex, int endIndex. A sobrecarga de métodos é muito útil e comumente utilizada na prática.

question mark

Quantas vezes podemos sobrecarregar um método?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Awesome!

Completion rate improved to 2.63

bookSobrecarga de Métodos

Deslize para mostrar o menu

Utilização de um método com diferentes parâmetros

Java permite escrever diferentes métodos com o mesmo nome. Esses métodos podem ter diferentes tipos de retorno e/ou tipos de parâmetros. Isso é feito para que possamos utilizar esses métodos com diferentes tipos. Vamos tomar como exemplo um método para imprimir um array:

Podemos escrever esse método para aceitar valores do tipo int, mas e se precisarmos imprimir um array do tipo char? Precisamos criar um método com outro nome?

Java oferece a sobrecarga de métodos para esse propósito.

Vamos analisar um exemplo de impressão de dados e inversão de um array do capítulo anterior:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627
// method to reverse an int array static int[] flipArray(int[] array) { // creating a new array to store the reversed elements int[] result = new int[array.length]; int index = 0; // iterating over the input array in reverse order for (int i = array.length - 1; i > 0; i--) { result[index] = array[i]; index++; } // returning the reversed int array return result; } // method to reverse a char array static char[] flipArray(char[] array) { // creating a new array to store the reversed elements char[] result = new char[array.length]; int index = 0; // iterating over the input array in reverse order for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } // returning the reversed char array return result; }

Sobrecaregamos o método flipArray para aceitar e retornar diferentes parâmetros: int e char. Se invocarmos este método, ele pode aceitar e retornar ambos os tipos int e char.

Agora, vamos sobrecarregar o método para exibir um array na tela. Este método também deve aceitar e retornar os tipos int e char:

Main.java

Main.java

copy
12345678910111213141516171819
// method to print an int array static void printArrayToTheConsole(int[] array) { // iterating through each element of the int array for (int element : array) { System.out.print(element + " "); } // printing a blank line after the array System.out.println(); } // method to print a char array static void printArrayToTheConsole(char[] array) { // iterating through each element of the char array for (char element : array) { System.out.print(element + " "); } // printing a blank line after the array System.out.println(); }

Aqui, sobrecarregamos o método printArrayToTheConsole para aceitar e retornar valores int e char.

Agora, vamos combinar os métodos sobrecarregados e utilizá-los no método main para um array do tipo int e um array do tipo char:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; char[] charArray = {'s', 'b', 'c', 'd', 'e', 'f', 'g'}; printArrayToTheConsole(flipArray(intArray)); printArrayToTheConsole(flipArray(charArray)); } // method to reverse an int array static int[] flipArray(int[] array) { int[] result = new int[array.length]; int index = 0; // iterating over the array in reverse order for (int i = array.length - 1; i > 0; i--) { result[index] = array[i]; index++; } return result; } // method to reverse a char array static char[] flipArray(char[] array) { char[] result = new char[array.length]; int index = 0; // iterating over the array in reverse order for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } // method to print an int array to the console static void printArrayToTheConsole(int[] array) { // printing each element of the int array for (int element : array) { System.out.print(element + " "); } System.out.println(); } // method to print a char array to the console static void printArrayToTheConsole(char[] array) { // printing each element of the char array for (char element : array) { System.out.print(element + " "); } System.out.println(); } }

Sobrecarregamos dois métodos diferentes adicionando a capacidade de utilizar esses métodos com arrays do tipo char. Também alteramos levemente os nomes desses métodos, pois agora podemos sobrecarregá-los várias vezes para aceitar e retornar valores de tipos diferentes.

Para verificar isso, criamos dois arrays diferentes, um do tipo int e outro do tipo char, e então passamos esses arrays para os métodos sobrecarregados, obtendo os resultados corretos.

Aliás, você já se deparou com métodos sobrecarregados antes. Por exemplo, o método String da classe substring() é sobrecarregado e pode ter um parâmetro, int beginIndex, ou dois parâmetros, int beginIndex, int endIndex. A sobrecarga de métodos é muito útil e comumente utilizada na prática.

question mark

Quantas vezes podemos sobrecarregar um método?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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