różnica między „class [] arrayname” a „class arrayname []” [duplicate]

Sep 25 2020

Nie rozumiem różnicy między

String[] arrayName = {/*some data here*/};

i

String arrayName[] = {/*some data here*/};

Czy jest jakaś różnica między umieszczaniem nawiasów kwadratowych po typie ( String[]) i po nazwie tablicy ( String arrayName[])?
Jeśli tak to co?

Odpowiedzi

4 Mureinik Sep 25 2020 at 12:25

Obie deklaracje będą miały ten sam wynik. Różnica jest tylko stylistyczna. Mimo to większość przewodników w stylu Java zaleca umieszczanie nawiasów kwadratowych w nazwie typu, a nie w nazwie zmiennej, tj .:

String[] arrayName = {/*some data here*/};
1 GiorgiTsiklauri Sep 25 2020 at 12:28

Są prawie takie same, z niewielkim haczykiem semantycznym.

Przez:

String[] array;
  1. Deklarujesz zmienną o nazwie, arrayktóra jest typu String [] (tablica String);
  2. W tym kodzie możesz zadeklarować inne zmienne w linii, z tym samym String[]typem ( String[] array1, array2;);

Przez:

String array[];
  1. Deklarujesz zmienną, która będzie odwoływała się do obiektu tablicy, którego elementy muszą być typu java.lang.String;
  2. Możesz mieć coś takiego, String array[], name, surname;co nie jest przyzwoitym kodem do napisania, ale semantyka Java tego nie blokuje.