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
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
Sobrecarga 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

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
Sobrecarga 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
some-alt