Metode (datavitenskap)

I programmering er en metode en subrutine hvis kode er definert i en klasse og kan tilhøre både en klasse, som tilfellet er med klasse eller statiske metoder , og til et objekt , slik tilfellet er med instansmetoder. . Analogt med prosedyrer i imperative språk , består en metode vanligvis av en rekke utsagn for å utføre en handling, et sett med input-parametere som vil regulere den handlingen, eller muligens en utdataverdi (eller returverdi) av noe slag.

Forskjellen mellom en prosedyre (vanligvis kalt en funksjon hvis den returnerer en verdi) og en metode er at sistnevnte, som er assosiert med et bestemt objekt eller klasse, kan få tilgang til og endre de private dataene til det tilsvarende objektet på en måte som er konsistent med ønsket oppførsel for det. Derfor er det tilrådelig å forstå en metode ikke som en sekvens av instruksjoner, men som måten objektet er nyttig på (metoden for å gjøre jobben sin). Derfor kan vi betrakte metoden som forespørselen til et objekt om å utføre en bestemt oppgave eller som måten å sende en melding til objektet og at det reagerer i henhold til nevnte melding.

Typer metoder

Som allerede nevnt er instansmetoder assosiert med et bestemt objekt, mens statiske eller klassemetoder (også kalt delte metoder) er assosiert med en bestemt klasse. I en konstruktørimplementering er dette spesielle instansmetoder som kalles automatisk når en instans av en eller annen klasse opprettes. I Java og C++ kjennetegnes de ved å ha samme navn som klassene de er knyttet til. Språk som Smalltalk krever ikke konstruktører eller destruktorer.

Tilgangsmetoder er en type normalt små og enkle metoder som er begrenset til å gi informasjon om tilstanden til et objekt. Selv om det introduserer en ny avhengighet, foretrekkes bruk av metoder fremfor direkte tilgang til informasjonen for å gi et nytt abstraksjonslag (objektorientert programmering) . For eksempel, hvis en klasse som modellerer en bankkonto gir en "getBalance()"- tilgangsmetode i senere versjoner av klassen, kan koden for den metoden endres vesentlig uten at klassens avhengige kode må endres (en endring vil være nødvendig når datatypen som returneres av metoden endres). Tilbehørsmetoder som kan endre tilstanden til et objekt kalles ofte oppdateringsmetoder eller muteringsmetoder ; på sin side kalles objektene som gir disse metodene mutable objekter .