Metoda statică vs non statică
O metodă este o serie de declarații care se realizează pentru a îndeplini o sarcină specifică. Metodele pot lua intrări și pot produce rezultate. Metodele statice și non statice sunt două tipuri de metode prezente în limbile de programare orientate obiect. O metodă statică este o metodă asociată unei clase. O metodă asociată unui obiect este numită o metodă non-statică (exemplu). În limbile orientate pe obiecte, metodele sunt utilizate ca un mecanism de operare a datelor stocate în obiecte.
Ce este o metodă statică?
În programarea orientată obiect, metoda statică este o metodă asociată unei clase. Prin urmare, metodele statice nu au capacitatea de a funcționa pe o anumită instanță a unei clase. Metodele statice pot fi invocate fără a utiliza un obiect al clasei care conține metoda statică. În continuare este un exemplu de definire a unei metode statice în Java. Staticul trebuie folosit atunci când se definește o metodă statică în Java.
clasa publica MyClass static public void MyStaticMethod () // codul metodei staticeMetoda statică definită mai sus poate fi apelată după cum urmează, folosind numele clasei din care face parte.
MyClass.MyStaticMethod ();
Un lucru important este faptul că metodele statice pot accesa numai membrii statici.
Ce este o metodă non statică?
O metodă non statică sau o metodă instanță este o metodă care este asociată cu un obiect dintr-o clasă. Prin urmare, metodele non statice sunt numite folosind un obiect din clasa în care este definită metoda. O metodă non statică poate accesa membrii non statici, precum și membrii statici ai unei clase. În multe limbi orientate pe obiecte (cum ar fi C ++, C #, Java), atunci când se numește o metodă non statică, obiectul care a invocat metoda este trecut ca argument implicit (se numește referința "aceasta"). Deci, în interiorul metodei, acest cuvânt cheie poate fi folosit pentru a se referi la obiectul care a numit metoda. În continuare este un exemplu de definire a unei metode de instanță în Java.
clasa publica MyClass public void MyInstanceMethod () // codul metodei instanței
Metoda instanței definită mai sus poate fi apelată după cum urmează, folosind un obiect din clasa din care face parte.
MyClass objMyClass = noua MyClass ();
objMyClass.MyInstanceMethod ();
Care este diferența dintre metoda statică și cea ne statică?
Metodele statice sunt metode asociate cu o clasă, în timp ce metodele non-statice sunt metode asociate obiectelor unei clase. O clasă trebuie să fie instanțiată mai întâi pentru a invoca o metodă non statică, dar metodele statice nu au această cerință. Acestea pot fi invocate simplu folosind numele clasei care deține metoda statică. O altă diferență importantă este că o metodă non-statică posedă, de obicei, o referință la obiectul care a numit metoda și poate fi accesat utilizând acest cuvânt cheie în cadrul metodei. Dar acest cuvânt cheie nu poate fi utilizat în metode statice, deoarece acestea nu sunt asociate cu un anumit obiect.