objektorientert programmering ble et paradigme i software utvikling som programmerere lært fordelene ved å administrere kode på en modulær måte . Ved å definere "objekter" som representerer informasjon programmereren bruker gjennom hele programmet , programmerer , og andre programmerere kan bygge ut av disse objektene for å skape mer komplisert programvare . I hjertet av objektorientert programvareutvikling er begrepene data innkapsling og abstraksjon , sammen med forestillinger om arv og polymorfisme . Innkapsling
Når du skriver klasser , krever god objektorientert programmering praksis at programmerere " kapsle " data bort fra brukeren av objektet. Dette betyr at alle data eller funksjon i en klasse ikke bør være tilgjengelig for brukeren uten programmerer modifisering. Et godt eksempel på dette er "få" og " set "-funksjoner innebygd i de fleste klasser . Disse funksjonene kontrollere hvordan en bruker kan få tilgang til data variabler i et objekt , og sikre at alle data kan betraktes som legitimt for bruk. Dette begrenser bekymring over ødelagte data eller ulovlig data manipulasjon av brukeren .
Abstraction
En fordel med objektorientert programmering er at det fjerner brukeren fra kravet om å vite hvordan andre koden fungerer . Denne fordelen , som kalles abstraksjon , betyr at en bruker å gjennomføre et objekt laget av en annen programmerer å utføre en bestemt oppgave ikke trenger å vite hvordan det objektet fullfører sin oppgave. På denne måten kan brukeren konsentrere seg om sine egne problemer , heller enn å bekymre gjennomføringen av et objekt de kanskje vil bruke . Dette lar programmerere å bygge større og mer komplekse programvare over mindre objekter.
Inheritance
En annen fordel for objektorientert programmering er arv , noe som også gjør det mulig for programmerere å bygge mer komplekse programmer fra enklere deler . Arv er på hvilken måte gjenstander " arve " funksjonalitet fra andre gjenstander , tweaking dem til å passe deres behov . For eksempel kan en " lærer " objekt arve sin funksjonalitet fra en " person " objekt , fordi læreren er en person og krever all funksjonaliteten til den personen objekt (sammen med de ekstra funksjonene til en lærer) . Denne måten gjør programmerer av læreren objektet ikke å skrive om personen objektet bare for å bruke det for læreren objekt , hun kan bare ha læreren objektet arver sine funksjoner fra person objektet
. polymorfisme
polymorfisme bånd på med arv , i at det er den måten som et objekt som arver fra et annet objekt samhandler med at "base " objekt . For eksempel kan læreren objektet arver visse funksjoner fra sin base objekt ( person) , men endre en av dem. Læreren objektet kan fortsatt bruke basen klasse funksjoner sammen med sin egen versjon av funksjonen den endres. Videre under kjøring av programmet en bruker kan erklære en variabel til å holde en person objekt, men senere i programmet bestemmer seg for at det er behov for en lærer objekt mer spesifikt . I dette tilfellet kan variabelen satt til side for den personen objektet holder en lærer objekt , fordi en lærer arver fra (eller er) en person objekt.