Statička vs nestalna metoda
Metoda je niz izjava koje se izvode za izvođenje određenog zadatka. Metode mogu uzimati ulaze i proizvoditi izlaze. Statičke i nestičke metode su dvije vrste metoda prisutne u objektno programskim jezicima. Statička metoda je metoda koja je povezana s klasom. Metoda koja je povezana s objektom naziva se nestatičkom (instanc) metodom. U objektno orijentiranim jezicima metode se koriste kao mehanizam za rad na podacima pohranjenim u objektima.
Što je statička metoda?
U objektno orijentiranom programiranju statička metoda je metoda koja je povezana s klasom. Prema tome, statičke metode ne mogu raditi na određenoj instanci klase. Statičke metode mogu se pozvati bez korištenja objekta klase koji sadrži statičku metodu. Slijedi primjer definiranja statičke metode u Javi. Statički se mora koristiti pri definiranju statičke metode u Javi.
javna klasa MyClass javna statička praznina MyStaticMethod () // kod statičke metodeGore definirana statička metoda mogla bi se nazvati kako slijedi koristeći naziv klase kojoj pripada.
MyClass.MyStaticMethod ();
Važno je napomenuti da statičkim metodama mogu pristupiti samo statički članovi.
Što je nestatička metoda?
Nestatična metoda ili metoda instance je metoda koja je povezana s objektom u klasi. Stoga se nazivaju nestatičke metode pomoću objekta klase u kojoj je metoda definirana. Nestatička metoda može pristupiti ne statičkim članovima kao i statičkim članovima klase. U mnogim objektno orijentiranim jezicima (kao što su C ++, C #, Java), kada se zove nestatička metoda, objekt koji je pozvao metodu prosljeđuje se kao implicitni argument (naziva se referenca 'ovo'). Dakle, unutar metode ova se ključna riječ može koristiti za upućivanje na objekt koji se zove metoda. Slijedi primjer definiranja metode instance u Javi.
javna klasa MyClass javna void MyInstanceMethod () // kod metode primjera
Gore definirana metoda primjera mogla bi se nazvati na sljedeći način koristeći objekt klase kojoj pripada.
MyClass objMyClass = novi MyClass ();
objMyClass.MyInstanceMethod ();
Koja je razlika između statičke i nestalne metode?
Statičke metode su metode koje su povezane s klasom, dok su ne-statičke metode metode koje su povezane s objektima klase. Klasa se mora trenutačno aktivirati da bi se pozvala nestatička metoda, ali statičke metode nemaju ovaj zahtjev. Mogu se jednostavno pozvati pomoću naziva klase koja sadrži statičku metodu. Druga važna razlika je u tome što nestatička metoda obično ima referencu na objekt koji se zove metoda i njemu se može pristupiti pomoću ove ključne riječi unutar metode. Ali ova se ključna riječ ne može koristiti u statičkim metodama jer nisu povezane s određenim objektom.