The below is my current code. I have to create a system of arrays that returns the averages of some random numbers through the use of overloading for my Java class. However, when I compile, BlueJ tells me that there is a "method myAverage(int []) is already defined in class overload" error, and I do not know what to do in order to fix it.
Thanks!
/**
* Write a description of class overload here.
*
* @author (your name)
* @version (a version number or a date)
*/
import java.util.Scanner;
import java.lang.Math;
public class overload
{
private static int myAverage (int [ ] arrayone)
{
int sum = 0;
for(int i=0; i < arrayone.length ; i++)
{
sum = sum + arrayone[i];
}
double average = sum / arrayone.length;
return average;
}
private static int myAverage (int [ ] arraytwo)
{
int sum = 0;
for(int i=0; i < arraytwo.length ; i++)
{
sum = sum + arraytwo[i];
}
double average = sum / arraytwo.length;
return average;
}
public static void main (String [ ] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter any number below.");
System.out.print("Enter the integer here: ");
int x = scan.nextInt();
int [] arrayone = new int [x];
for (int i = 0; i < arrayone.length; i++)
{
arrayone[ i ] = (int)(Math.random( ) * 100) + 1;
}
myAverage(arrayone);
System.out.println("\n\nThe average of the first array is : " + average);
System.out.println("\n\nEnter any number below.");
System.out.print("Enter the integer here: ");
int y = scan.nextInt();
int [] arraytwo = new int [y];
for (int i = 0; i < arraytwo.length; i++)
{
arraytwo[ i ] = (double)(Math.random( ) * 100) + 1;
}
myAverage(arraytwo);
}
}
"method myAverage(int []) is already defined in class overload" error
You have two methods with same signature
private static int myAverage (int [ ] arrayone)
Just remove any one. And change the return
type to double
since you are returning average
of type double
.
private static double myAverage (int [ ] arrayone)
I do not understand what you are saying
In your case, this is not a method overloading. Method overloading means
1.Methods return
type must be different.
ex:
private static double myAverage (int [ ] arrayone){
^
}
private static int myAverage (int [ ] arrayone){
^
}
2.Number of arguments must be different.
ex:
private static int myAverage (int [ ] arrayone){
^
}
private static int myAverage (int [ ] arrayone, int [ ] arraytwo){
^ ^
}
3.Type of arguments must be different.
ex:
private static int myAverage (double [ ] arrayone){
^
}
private static int myAverage (int [ ] arrayone){
^
}
Either of these one must be true.