Przesylanie danych do metody

Odpowiedz Nowy wątek
2006-12-28 20:10

Rejestracja: 13 lat temu

Ostatnio: 13 lat temu

0

Mam mały problem. Muszę w metodzie z jednego obiektu modyfikować dane z innego obiektu. W C++ bym zrobił wskaźnik, ale w Javie ich nie ma. Więc jak przesłać te dane żeby operować na oryginałach a nie kopiach ??

Pozostało 580 znaków

2006-12-28 21:02
Moderator

Rejestracja: 18 lat temu

Ostatnio: 4 godziny temu

0

Przekazywanie przez referencję to się nazywa. Wpisałem to do Google i dostałem to: http://groups.google.com/grou[...]7873394f16%23b2136a7873394f16
Jak się dowiemy jaki typ danych to coś będzie można poradzić.

Pozostało 580 znaków

2006-12-28 21:09

Rejestracja: 13 lat temu

Ostatnio: 13 lat temu

0

String dokladnie

Pozostało 580 znaków

2006-12-29 00:25

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0

W Javie wszelkie obiekty przekazywane sa przez referencje, znaczy modyfikacja bedzie widoczna na zewnatrz. Tylko typy wbudowane sa przez wartosc.


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-12-29 13:36

Rejestracja: 14 lat temu

Ostatnio: 11 lat temu

0

Zacznijmy od tego, ze nie ta sie zmodyfikowac Stringa Integera, Booleana itp.
mozna co najwyzej do zmiennej przypisac referencje do innego Stringa
jesli przeazesz stringa jako parametr metody, to przekazywana jest kopia referencji, czyli jesli ja podmienisz - nie bedzie to widoczne na zewnatrz
co musisz zrobic?
stworzyc swoja klase opakowujaca tego Stringa, obiekt tej klasy przekazac i uzywajac metody np setString - ustawic nowa wartosc

pozdrawiam

Pozostało 580 znaków

2006-12-29 13:39

Rejestracja: 14 lat temu

Ostatnio: 8 lat temu

0

Ano - w tym wypadku sama klasa nie pozwala chyba na modyfikacje, czy sie myle?


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-12-30 15:44

Rejestracja: 13 lat temu

Ostatnio: 13 lat temu

0

Zapakowałem to do klasy i zadziałało. Dzięki.

Pozostało 580 znaków

Odpowiedz

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