Różnice w zapisie wywołań metod

0

Mam pytanie
utworzyłem sobie klasę o nazwie "klasa"
powiedzmy z jednym polem int
w klasie utworzyłem metodę (void) o nazwie "test " która jako parametr przyjmuję obiekt klasy "klasa"

i teraz w mainie czym się różni wywołanie

test(a);

a jest obiektem klasy "klasa"
od

a.test(a);

i dlaczego przy tym pierwszej metoda musiałaby być statyczna ?

2

Bo niejawnie pierwszym argumentem metody niestatycznej jest zawsze this czyli obiekt na rzecz którego wołasz metodę.
Jak masz klasę pies i metodę szczekaj() to żeby zaszczekać musisz miec psa, to jest raczej logiczne. Nie miałoby sensu wywołanie szczekaj() kiedy nie masz pod ręką psa. Musisz więc mieć pies.szczekaj().

0

skoro argumentem niestatycznej jest this to co jest pierwszym argumentem metody statycznej przyjmujacej obiekty klasy? ,
jeszcze czym różnią się ty wywołania które opisałem powyżej a.test(a) jest wywołaniem metody na rzecz obiektu a,natomiast samo test(a)?

ok znalazłem już w literaturze ,dzięki za poprzednią odpowiedź.

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