tablica bajtów jako referencja

0

Witam wszystkich.
javą bawie się dobiero od kilku dni. ale nagle pojawił mi się problem którego kompletnie nie rozumiem.
a mianowicie mam coś takiego:

public static void main()
{
byte[] Frames = new byte[2];
metod(Frames );
}

public static void metod(byte[] tablica)
{
tablica = new byte[6];
}

po wyjściu z metody tablica nadal ma rozmiar 2 a nie 6. Dlaczego tak się dzieje ?

0

ponieważ nadpisujesz sobie referencje w metodzie, nie zmienisz referencji w metodzie wyżej - w Javie tak tego nie zrobisz... do metody metod przekazujesz referencję do obiektu, nie do zmiennej...

Jak to ktoś ujął pięknie: W Javie nie przekazuje się przez referencje, tylko przez wartość, którą jest referencja do obiektu... czy jakoś tak, w każdym razie nigdy do zmiennej

Nie chce mi się weryfikować tego co napisałem, bo jest 7 rano i nie spałem w nocy... niech mnie ktoś poprawi...

0

Twoja metoda powinna dawać w wyniku referencję na tablicę. Wtedy można zrobić coś takiego:

tab = metoda(tab);
0

Jeśli dobrze rozumiem to:

jeśli mam zamiar mieć w jakieś metodize
talica = new byte[6];
to metoda musi zwracać tą tablicę.

ale jeśli mam zamiar tylko modyfikować tą tablice wpisując do niej jakieś wartości to wsyztsko będzie ok.

Dzięki za pomoc.
Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1