Hvad er en statisk metode?

En objektorienteret computerprogrammeringsmetode, der er deklareret i en klasse, men ikke er afhængig af nogen særlig instantiering af denne klasse kaldes en statisk metode. De fleste programmeringssprog inkluderer nøgleordet statisk i erklæringen af ​​en metode til at gøre en metode statisk. Disse metoder hører strengt til den klasse, de er indeholdt i, og ikke til noget objekt, der er instantieret fra den klasse. De omtales ofte som klassemetoder .

Klassens bogstavelige navn bruges normalt til at få adgang til en statisk metode i stedet for at henvise til den med navnet på et øjeblikkeligt objekt. Det er tilladt i Java at bruge objektnavne til at henvise til disse metoder, men det frarådes kraftigt. Hvis der bruges et objektnavn, kan en person, der læser koden, forveksle en af ​​disse metoder med en instansmetode.

Statiske metoder bruges ofte i brugsklasser, der ikke afhænger af forekomstvariabler fra en bestemt klasse. De bruges også, når en programmør har brug for at få adgang til metoden, men det er ikke nødvendigt at instantiere den klasse, den er indeholdt i. Værktøjsklasser er normalt ikke indstillet i objekter. Det ville være usædvanligt, at en hjælpemetode har et behov for at ændre objektoplysninger. En metode fra klassen java.lang.math, såsom pow (), ville være et eksempel på, hvordan denne type metode ville blive brugt i en nytteklasse.

Forekomstmetoder kan direkte få adgang til forekomstvariabler, statiske variabler, instansmetoder og statiske metoder. Statiske metoder har ikke direkte adgang til forekomstvariabler og instansmetoder. På grund af arten af ​​forekomstmetoder, der har bedre adgang til klassemedlemmer end en statiske metoder, er instansmetoder den type metoder, der normalt bruges i almindelige klasser.

En væsentlig ulempe ved statiske metoder forekommer under arv, når polymorfisme anvendes. Så længe den overordnede statiske metode ikke er erklæret endelig, kan den samme statiske metode til kode kodes i undergruppen, som om den blev tilsidesat. Dette kaldes teknisk skjult i stedet for at tilsidesætte, fordi en statisk metode ikke kan tilsidesættes.

Når der anvendes skjul, hvis den statiske overordnede metode er tilgængelig ved hjælp af klassens navn, bruges den overordnede metode. Hvis der bruges statisk metode til tilsidesættelse af børn ved hjælp af objektnavnet, bruges metoden til tilsidesættelse af børn. Problemet opstår, når et barnobjekt bliver upcast som forælder. I dette tilfælde bruger et opkald til den udstationerede børns statiske metode forældremetoden i stedet for den forventede underordnede metode. Med ægte polymorfisme ville børnemetoden være den, der aktiveres efter en upcast.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?