Metoda statyczna a niestatyczna
Metoda to seria instrukcji wykonywanych w celu wykonania określonego zadania. Metody mogą pobierać dane wejściowe i generować wyniki. Metody statyczne i niestatyczne to dwa rodzaje metod obecnych w obiektowych językach programowania. Metoda statyczna to metoda powiązana z klasą. Metoda skojarzona z obiektem nazywana jest metodą niestatyczną (wystąpienia). W językach obiektowych metody są używane jako mechanizm do operowania na danych przechowywanych w obiektach.
Co to jest metoda statyczna?
W programowaniu obiektowym metoda statyczna jest metodą powiązaną z klasą. Dlatego metody statyczne nie mają możliwości działania na konkretnej instancji klasy. Metody statyczne można wywoływać bez użycia obiektu klasy, która zawiera metodę statyczną. Poniżej znajduje się przykład zdefiniowania metody statycznej w Javie. Statyczna musi być użyta podczas definiowania metody statycznej w Javie.
public class MojaKlasa { public static void MyStaticMethod() { // kod metody statycznej }
}
Zdefiniowaną powyżej metodę statyczną można wywołać w następujący sposób, używając nazwy klasy, do której należy.
MojaKlasa. MojaMetodaStatyczna();
Najważniejszą rzeczą do zapamiętania jest to, że metody statyczne mają dostęp tylko do statycznych członków.
Co to jest metoda niestatyczna?
Niestatyczna metoda lub metoda instancji to metoda powiązana z obiektem w klasie. Dlatego metody niestatyczne są wywoływane przy użyciu obiektu klasy, w której zdefiniowana jest metoda. Metoda niestatyczna może uzyskiwać dostęp do niestatycznych członków, a także do statycznych członków klasy. W wielu językach zorientowanych obiektowo (takich jak C++, C, Java), gdy wywoływana jest metoda niestatyczna, obiekt, który ją wywołał, jest przekazywany jako niejawny argument (nazywa się to referencją „this”). Tak więc wewnątrz metody to słowo kluczowe może być użyte do odwołania się do obiektu, który wywołał metodę. Poniżej znajduje się przykład definiowania metody instancji w Javie.
public class MojaKlasa { public void MyInstanceMethod() { // kod metody instancji }
}
Zdefiniowana powyżej metoda instancji może być wywołana w następujący sposób przy użyciu obiektu klasy, do której należy.
MojaKlasa objMojaKlasa=nowa MojaKlasa();
objMyClass. MyInstanceMethod ();
Jaka jest różnica między metodą statyczną a niestatyczną?
Metody statyczne to metody skojarzone z klasą, natomiast metody niestatyczne to metody skojarzone z obiektami klasy. Aby wywołać metodę niestatyczną, należy najpierw utworzyć instancję klasy, ale metody statyczne nie mają tego wymogu. Można je po prostu wywołać, używając nazwy klasy, która przechowuje metodę statyczną. Inną ważną różnicą jest to, że metoda niestatyczna zwykle posiada odniesienie do obiektu, który wywołał metodę i można do niej uzyskać dostęp za pomocą słowa kluczowego this wewnątrz metody. Ale to słowo kluczowe nie może być używane w metodach statycznych, ponieważ nie są one powiązane z konkretnym obiektem.