Hvad er en statisk metode?

En objektorienteret computerprogrammeringsmetode, der er erklæret i en klasse, men ikke er afhængig af nogen bestemt instantiering af denne klasse kaldes en statisk metode. De fleste programmeringssprog inkluderer nøgleordet statisk i erklæringen om en metode til at gøre en statisk metode. Disse metoder hører strengt til den klasse, de er indeholdt i, og ikke til noget objekt, der er instantieret fra denne klasse. De kaldes ofte 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 instantieret objekt. Det er tilladt i Java at bruge objektnavne til at henvise til disse metoder, men det er stærkt modløs. Hvis der bruges et objektnavn, kan en person, der læser koden, forvirre en af ​​disse metoder med en forekomstmetode.

Statiske metoder bruges ofte i brugsklasser, der ikke afhænger af forekomstvariabler fra en bestemt klasse. De bruges også, når en programmør skalAdgang til metoden, men der er ikke behov for at instantiere den klasse, den er indeholdt i. Hjælpeklasser er normalt ikke instantieret til objekter. Det ville være usædvanligt, at en brugsmetode 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 værktøjsklasse.

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

En vigtig ulempe ved statiske metoder forekommer under arv, når polymorfisme anvendes. Så længe den overordnede statiske metode ikke er erklæret endelig, det samme barnStatisk metode kan kodes i børneklassen, som om den blev tilsidesat. Dette kaldes teknisk skjul i stedet for at tilsidesætte, fordi en statisk metode ikke kan tilsidesættes.

Når skjul bruges, hvis den statiske overordnede metode er tilgængelig ved hjælp af klassens navn, vil overordnet metode blive brugt. Hvis der er adgang til den tilsidesættede børns statiske metode ved hjælp af objektnavnet, bruges den tilsidesættede børnemetode. Problemet opstår, når et barnobjekt er UPCast som forælder. I dette tilfælde bruger et opkald til den statiske metode til Upcast Child til overordnet metode i stedet for den forventede børnemetode. Med ægte polymorfisme ville barnets metode være den, der er aktiveret 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?