Zdravim, chcem sa opytat na predavanie arguemntov do metody. Preco sa zmeni hodnota prvkov pola mojeP po tomto prikaze
"mojeP2 = doublePole1(mojeP);", ked Java by mala pracovat len s
hodnotami prvkov toho pola? Pri pouziti metody doublePole2 je vsetko OK, tak by to ale malo byt aj pri doublePole1 metode.
Kód:
public class MyClass{
public static void main(String []args){
int mojeP[] = {1,2,3};
int mojeP2[] = new int[3];
zobrazPole(mojeP); // vypise 1,2,3
mojeP2 = doublePole1(mojeP);
zobrazPole(mojeP); // vypise 2,4,6
zobrazPole(mojeP2);
}
static int[] doublePole1(int[] pole){
for (int i=0; i < pole.length; i++){
pole[i] *= 2;
}
return pole;
}
static int[] doublePole2(int[] pole){
int[] pole2 = new int[pole.length];
for (int i=0; i < pole.length; i++){
pole2[i] = 2*pole[i];
}
return pole2;
}
static void zobrazPole(int[] pole){
for (int i=0; i < pole.length; i++){
System.out.print(pole[i] + ", ");
}
System.out.println();
}
}
Skusil som si vytvorit aj jednoduchsi program na skusku a tuto funguje vsetko tak ako ma - x nenadobudne novu hodnotu pokial nepriradim vysledok metody do x.
Kód:
public class MyClass{
public static void main(String []args){
int x = 10;
doubleNum(x);
zobraz(x); // vypise 10
}
static int doubleNum(int y){
return y *= 2;
}
static void zobraz(int y){
System.out.println(y);
}
}