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 powiązana z obiektem nazywa się metodą niestatyczną (instancją). W językach obiektowych metody są stosowane jako mechanizm działania 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 zawierającego metodę statyczną. Poniżej znajduje się przykład definiowania metody statycznej w Javie. Podczas definiowania metody statycznej w Javie należy stosować wartość statyczną.
MyClass klasy publicznej public static void MyStaticMethod () // kod metody statycznejMetodę statyczną zdefiniowaną powyżej można wywołać w następujący sposób, używając nazwy klasy, do której należy.
MyClass.MyStaticMethod ();
Należy zauważyć, że metody statyczne mają dostęp tylko do elementów statycznych.
Co to jest metoda niestatyczna?
Metoda niestatyczna 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 metoda jest zdefiniowana. Metoda niestatyczna może uzyskać dostęp do elementów niestatycznych, a także do elementów statycznych klasy. W wielu językach obiektowych (takich jak C ++, C #, Java), gdy wywoływana jest metoda niestatyczna, obiekt, który ją wywołał, jest przekazywany jako argument niejawny (nazywany jest referencją „this”). Tak więc w metodzie można użyć tego słowa kluczowego w odniesieniu do obiektu, który wywołał metodę. Poniżej znajduje się przykład definiowania metody instancji w Javie.
MyClass klasy publicznej public void MyInstanceMethod () // kod metody instancji
Metodę instancji zdefiniowaną powyżej można wywołać w następujący sposób, używając obiektu klasy, do której należy.
MyClass objMyClass = new MyClass ();
objMyClass.MyInstanceMethod ();
Jaka jest różnica między metodą statyczną a niestatyczną?
Metody statyczne to metody powiązane z klasą, natomiast metody niestatyczne to metody powiązane z obiektami klasy. Najpierw należy utworzyć instancję klasy, aby wywołać metodę niestatyczną, ale metody statyczne nie mają tego wymagania. Można je po prostu wywołać przy użyciu nazwy klasy, która przechowuje metodę statyczną. Inną ważną różnicą jest to, że metoda niestatyczna zwykle zawiera odniesienie do obiektu, który wywołał metodę, i można uzyskać do niej dostęp za pomocą tego słowa kluczowego wewnątrz metody. Ale tego słowa kluczowego nie można użyć w metodach statycznych, ponieważ nie są one powiązane z konkretnym obiektem.