Statisk vs ikke-statisk metode
En metode er en række udsagn, der udføres for at udføre en specifik opgave. Metoder kan tage input og producere output. Statiske og ikke-statiske metoder er to typer metoder, der findes i objektorienterede programmeringssprog. En statisk metode er en metode, der er forbundet med en klasse. En metode, der er knyttet til et objekt, kaldes en ikke-statisk (instans) metode. I objektorienterede sprog bruges metoder som en mekanisme til at operere på data, der er lagret i objekter.
Hvad er en statisk metode?
I objektorienteret programmering er statisk metode en metode, der er forbundet med en klasse. Derfor har statiske metoder ikke evnen til at fungere på en bestemt forekomst af en klasse. Statiske metoder kan påberåbes uden at bruge et objekt af klassen, der indeholder den statiske metode. Følgende er et eksempel på definition af en statisk metode i Java. Det statiske skal bruges, når man definerer en statisk metode i Java.
public class MyClass { public static void MyStaticMethod() { // kode for den statiske metode }
}
Den statiske metode defineret ovenfor kunne kaldes som følger ved at bruge navnet på den klasse, den tilhører.
MyClass. MyStaticMethod();
En vigtig ting at bemærke er, at statiske metoder kun kan få adgang til statiske medlemmer.
Hvad er en ikke-statisk metode?
En ikke-statisk metode eller en instansmetode er en metode, der er knyttet til et objekt i en klasse. Derfor kaldes ikke-statiske metoder ved hjælp af et objekt af den klasse, hvor metoden er defineret. En ikke-statisk metode kan få adgang til ikke-statiske medlemmer såvel som statiske medlemmer af en klasse. I mange objektorienterede sprog (såsom C++, C, Java), når en ikke-statisk metode kaldes, videregives det objekt, der påkaldte metoden, som et implicit argument (det kaldes 'denne' reference). Så inde i metoden kan dette nøgleord bruges til at henvise til det objekt, der kaldte metoden. Følgende er et eksempel på definition af en instansmetode i Java.
public class MyClass { public void MyInstanceMethod() { // kode for instansmetoden }
}
Den ovenfor definerede instansmetode kunne kaldes som følger ved at bruge et objekt i den klasse, det tilhører.
MyClass objMyClass=new MyClass();
objMyClass. MyInstanceMethod ();
Hvad er forskellen mellem statisk og ikke-statisk metode?
Statiske metoder er metoder, der er knyttet til en klasse, hvorimod ikke-statiske metoder er metoder, der er forbundet med objekter i en klasse. En klasse skal instansieres først for at påberåbe en ikke-statisk metode, men statiske metoder har ikke dette krav. De kan simpelthen påberåbes ved at bruge navnet på den klasse, der har den statiske metode. En anden vigtig forskel er, at en ikke-statisk metode norm alt har en reference til det objekt, der kaldte metoden, og den kan tilgås ved hjælp af dette nøgleord inde i metoden. Men dette nøgleord kan ikke bruges i statiske metoder, da de ikke er knyttet til et bestemt objekt.