Statisk vs ikke-statisk metode
En metode er en rekke uttalelser som utføres for å utføre en bestemt oppgave. Metoder kan ta innganger og produsere utganger. Statiske og ikke-statiske metoder er to typer metoder tilstede i objektorienterte programmeringsspråk. En statisk metode er en metode som er knyttet til en klasse. En metode som er knyttet til et objekt kalles en ikke-statisk (forekomst) metode. I objektorienterte språk brukes metoder som en mekanisme for å operere på data som er lagret i objekter.
Hva er en statisk metode?
I objektorientert programmering er statisk metode en metode som er knyttet til en klasse. Derfor har statiske metoder ikke muligheten til å operere på en bestemt forekomst av en klasse. Statiske metoder kan påberopes uten å bruke et objekt av klassen som inneholder den statiske metoden. Følgende er et eksempel på å definere en statisk metode i Java. Den statiske må brukes når du definerer en statisk metode i Java.
offentlig klasse MyClass offentlig statisk tomrom MyStaticMethod () // kode for statisk metodeDen statiske metode som er definert ovenfor kan kalles som følger ved å bruke navnet på den klassen den tilhører.
MyClass.MyStaticMethod ();
En viktig ting å merke seg er at statiske metoder bare kan få tilgang til statiske medlemmer.
Hva er en ikke-statisk metode?
En ikke-statisk metode eller en instansmetode er en metode som er knyttet til et objekt i en klasse. Derfor kalles ikke-statiske metoder ved å bruke et objekt av klassen der metoden er definert. En ikke-statisk metode kan få tilgang til ikke-statiske medlemmer, så vel som statiske medlemmer av en klasse. I mange objektorienterte språk (som C ++, C #, Java), når en ikke-statisk metode kalles, blir objektet som påkalte metoden, overført som et implisitt argument (det kalles "denne" referansen). Så, inne i metoden kan dette søkeordet brukes til å referere til objektet som kalte metoden. Følgende er et eksempel på å definere en forekomstmetode i Java.
offentlig klasse MyClass offentlig tomrom MyInstanceMethod () // kode for instansmetoden
Instansmetoden som er definert ovenfor kan kalles på følgende måte ved å bruke et objekt av klassen den tilhører.
MyClass objMyClass = ny MyClass ();
objMyClass.MyInstanceMethod ();
Hva er forskjellen mellom statisk og ikke-statisk metode?
Statiske metoder er metoder som er knyttet til en klasse, mens ikke-statiske metoder er metoder som er knyttet til objekter i en klasse. En klasse må være instantiated først for å påberope seg en ikke-statisk metode, men statiske metoder har ikke dette kravet. De kan bare påberopes ved å bruke navnet på klassen som holder statisk metode. En annen viktig forskjell er at en ikke-statisk metode vanligvis har en referanse til objektet som kalte metoden, og det kan nås ved hjelp av dette søkeordet inne i metoden. Men dette søkeordet kan ikke brukes i statiske metoder siden de ikke er knyttet til en bestemt gjenstand.