Hur skickar du någon annan parameter till en annan klass??
Sedan beror det lite på vad du har tänkt dig. Skall den andra klassen manipulera på samma array som du skickar eller ska den manipulera på en egen kopia?
I det första fallet är det enkelt:
int[] integers = new int[]{1,2,3,4,5,6,7,8,9, 0};
int summa = Matte.addera(integers);
Denna tar samma objekt som skapas av new int[] och gör något med det. De betyder att om Matte.addera(...) tar bort något ur arrayen så försvinner det även i den refererande klassen...
Exempel som jag använder på min Java-kurs.
public class ArrayExempel
{
public static void main(String[] args)
{
int[] integers = new int[]
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
ArrayManipulerare.print(integers, "Array före manipulation");
ArrayManipulerare.replace(integers, 5, 0);
ArrayManipulerare.print(integers, "Array efter manipulation");
System.out.println("Clonetest");
ArrayManipulerare.print(integers, "Array före manipulation");
ArrayManipulerare.replace(integers.clone(), 2, 0);
ArrayManipulerare.print(integers, "Array efter manipulation");
}
}
import java.util.Arrays;
public class ArrayManipulerare
{
public static int add(int[] array)
{
int result = 0;
for (int i = 0; i < array.length; i++)
{
System.out.println("Lägger till " + array[i] + " till summan " + result);
result += array[i];
}
return result;
}
/**
* @param array
* Array att manipulera
* @param what
* Vilken siffra ska ersättas
* @param with
* Med vilken siffa
*/
public static void replace(int[] array, int what, int with)
{
int currentInt;
for (int i = 0; i < array.length; i++)
{
currentInt = array[i];
if (currentInt == what)
{
System.out.println("Ersätter " + currentInt + " på position " + i);
array[i] = with;
}
}
}
public static void print(int[] array, String msg)
{
System.out.println(msg);
System.out.print("{");
boolean first = true;
for (int i = 0; i < array.length; i++)
{
if (!first)
{
System.out.print(",");
}
first = false;
System.out.print(array[i]);
}
System.out.println("} \n---");
}
}
Lek lite med dessa två klasser så ser du nog hur det funkar.