Na pewno prosta rzecz, ale potrzebowałbym pomocy.
public class ArrayLocation{
private double coords;
public ArrayLocation(double coords){
this.coords = coords;
}
public static void main(String [] args){
double coords = 5.0;
ArrayLocation accra = new ArrayLocation(coords);
coords = 32.9;
System.out.println(accra.coords);
}
}
output: 5.0
public class ArrayLocation{
private double coords[];
public ArrayLocation(double [] coords){
this.coords = coords;
}
public static void main(String [] args){
double[] coords = {5.0, 0.0};
ArrayLocation accra = new ArrayLocation(coords);
coords[0] = 32.9;
coords[1] = -117.2;
System.out.println(accra.coords[0]);
}
}
output: 32.9
Przy primitive type rozumiem dlaczego jest taki output.
Jednak mam problem z dokładnym zrozumieniem, gdy zrobimy tablice (2 przykład). Wiem, że tablice to obiekty i to jest pewnie kluczowe, ale nie rozumiem dlaczego. coords[0] na początku przypisuje 5.0, 0.0 i tworze obiekty przy pomocy konstruktora z wartościami 5.0, 0.0. Potem w main przypisuje do coords[0] liczbę 32.9 i wyświetlam accra.coords[0] i pojawia się 32.9, a nie 5.0. Prosiłbym o nakierowanie, lub wytłumaczenie dlaczego tak się dzieje.