• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przekazywanie parametów do metody

0 głosów
451 wizyt
pytanie zadane 8 maja 2017 w Java przez woks Nowicjusz (230 p.)

Mam dwa kody gdzie przekazuję coś do metody:

public static void metoda(int x)
{
...
}

int x = 10;
metoda(x);

public static void metoda(Kolo k)
{
...
}

Kolo kolo = new Kolo();
metoda(kolo);

 

Pierwszy z nich jest dla mnie zrozumiały - przekazuję do metody jako wartość x = 10. Drugiego sposobu juz nie rozumiem. Mam wcześniej utworzoną klasę Kolo ale dla czego do wywołania metody muszę podać zmienną obiektową kolo? W klasie Kolo mam mutator i akcesor na których będę pracował ale nie rozumiem dla czego muszę w wywołaniu metody dać referencję do tej klasy?

1 odpowiedź

0 głosów
odpowiedź 8 maja 2017 przez adrian17 Mentor (355,180 p.)
Bo to metoda statyczna (`static`). Z definicji nie ma ona normalnie dostępu do instancji klasy.
komentarz 8 maja 2017 przez woks Nowicjusz (230 p.)
Czyli wywołując w takim przypadku metodę musze mu podać referencję do tej klasy?
komentarz 8 maja 2017 przez adrian17 Mentor (355,180 p.)
Podajesz argumenty, jak do zwykłej funkcji. Jednym z nich może być referencja do obiektu.

Natomiast, jeśli metoda należy do klasy Koło, to znacznie więcej sensu ma zwykła metoda, niż metoda statyczna z takim argumentem.
komentarz 8 maja 2017 przez woks Nowicjusz (230 p.)

Mam taki kod (w klasie Kolo jest tylko pole, akcesro, mutator i konstruktor - nie mam teraz dostępu do tego kodu...):

public class Przekazywanie 
{
public static void metoda(Kolo k)
{
double temp = k.getPromien();
temp = temp * 2;
k.setPromien(temp);
}

Kolo kolo = new Kolo();
metoda(kolo);
}

 

Jak wywołam teraz

getPromien()

dla obiektu "kolo" to podwoi mi mi wartość z konstruktora.

Czyli pole "promien" będzie zmienione na rzecz obiektu "kolo" ale jak wywołam "getPromien()" dla innego obiektu, np. "kolo2" to wartość tego pola dalej będzie brana z konstruktora i podwaja na nowo - dobrze rozumiem?

Czyli jest to tylko dobry sposób do robienia obliczeń, a co z wynikami które chciał bym używać np. po ponownym włączeniu programu? Jak to wygląda z praktycznego punktu widzenia? Operuje się np. na zwykłych plikach tekstowych czy wygląda to inaczej?

Podobne pytania

0 głosów
1 odpowiedź 2,022 wizyt
pytanie zadane 18 marca 2019 w Java przez Roman1212 Początkujący (460 p.)
0 głosów
2 odpowiedzi 714 wizyt
pytanie zadane 9 maja 2017 w Java przez rubesom Obywatel (1,690 p.)
0 głosów
2 odpowiedzi 1,037 wizyt
pytanie zadane 29 grudnia 2018 w Java przez studenciak Nowicjusz (230 p.)

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...