Annonse

Hvis du har gjort det nybegynner programmering, eller til og med begynt å se på forskjellige språk, har du sannsynligvis kommet over uttrykket "objektorientert programmering" (eller "OOP").

Det er alle slags tekniske forklaringer på hva det er, men i dag skal vi se på å definere objektorientert programmering på en enkel måte.

Før vi begynner: Prosedyrespråk

For å forstå hva et objektorientert programmeringsspråk er, må du forstå hva det erstattet. Tidlige programmeringsspråk var prosessuelle - såkalte fordi programmereren ville definere et veldig spesifikt sett med prosedyrer som datamaskinen ville foreta.

Hva er objektorientert programmering og hvordan komme i gang med å lære det

I de tidligste dagene ble prosedyrer skrevet på stansekort. Disse trinnene tok inn data, utførte en sekvens med handlinger på disse dataene, og sendte deretter ut nye data.

Prosedyrespråk fungerte bra en tid (og noen er fremdeles i bruk). Men når du vil programmere noe utover en grunnleggende trinnsekvens, kan prosedyrespråk bli vanskelig å administrere. Det er her objektorientert programmering kommer inn.

instagram viewer

Målet med objektorientert programmering

Så hva er objektorientert programmering?

Det første objektorienterte språket (generelt enige om å være Simula) introduserte ideen om objekter. Objekter er samlinger av informasjon som blir behandlet som en entall enhet.

Vi vil dykke dypere i hva det faktisk betyr på et sekund med et eksempel, men først må vi snakke om klasser. Klassene er lik pre-objekter. De inneholder en liste over attributter som, når de er definert, blir et objekt.

Hva er objektorientert programmering og hvordan komme i gang med å lære det

La oss ta eksemplet med å programmere et sjakkspill. Vi har kanskje en klasse som heter Piece. Within Piece har vi en liste over attributter:

  • Farge
  • Høyde
  • Form
  • Bevegelse tillatt

Et objekt definerer ganske enkelt ett bestemt eksempel på en ting som tilhører den klassen.

Så vi kan ha et objekt som heter WhiteQueen. Dette objektet vil ha definisjoner for alle fire attributtene (hvite, høye, sylindriske med crenellasjoner, hvilket som helst antall mellomrom i hvilken som helst retning). Det kan det også ha metoder eller funksjoner.

Hva gjør dette så mye bedre enn den prosessuelle tilnærmingen?

Kort sagt, objektorienterte programmeringsspråk (som Java) gjør det lettere å organisere data og kode på en måte som er mer allsidig for større prosjekt.

For å diskutere det litt mer detaljert, snakker vi om de fire grunnleggende elementene i objektorientert programmering.

Objektorientert programmering: Abstraksjon

Bare fordi du vil bruke noe, betyr ikke det at du trenger å vite hvordan det fungerer. En espressomaskin, for eksempel, er kompleks. Men du trenger ikke vite hvordan det fungerer. Du trenger bare å vite at når du treffer "På", vil du få espresso.

Hva er objektorientert programmering og hvordan komme i gang med å lære det

Det samme gjelder objekter i objektorientert programmering. I sjakkeksemplet vårt kan det hende at vi har en bevegelsesmetode. Den metoden kan kreve mye data og andre metoder. Det kan være behov for startposisjon og endelig posisjonsvariabel. Den kan bruke en annen metode for å bestemme om det er fanget et stykke.

Men du trenger ikke vite det. Alt du trenger å vite er at når du ber stykket om å flytte, beveger det seg. Det er abstraksjon.

Objektorientert programmering: Innkapsling

Innkapsling er en av måtene objektorientert programmering skaper abstraksjon. Hvert objekt er en samling av data som blir behandlet som en enkelt enhet. Og innenfor disse objektene er data — både variabler og metoder.

Variablene i et objekt blir generelt holdt private, noe som betyr at andre objekter og metoder ikke har tilgang til dem. Objekter kan bare påvirkes ved å bruke metodene deres.

Et biskop-objekt kan inneholde flere opplysninger. For eksempel kan den ha en variabel som kalles "posisjon." Den variabelen er nødvendig for å bruke flyttemetoden (). Og selvfølgelig har den en farge.

Ved å gjøre posisjonsvariabelen privat og flytte-metoden (offentlig) beskytter en programmerer trekkvariabelen fra å bli påvirket av noe annet. Og hvis fargen er en privat variabel, er det ingen måte for et annet objekt å endre den med mindre det er en metode som tillater endringen. (Som du sannsynligvis ikke ville hatt, ettersom fargen på stykket skal forbli konstant.)

Disse variablene og metodene holdes innenfor Bishop-objektet. Fordi de er innkapslet, kan en programmerer gjøre en endring i strukturen eller innholdet i objektet uten å bekymre seg for det offentlige grensesnittet.

Objektorientert programmering: Arv

I tillegg til klasser har objektorienterte programmeringsspråk også underklasser. Disse inneholder alle attributtene fra foreldreklassen, men de kan også inneholde andre attributter.

I sjakkspillet vårt trenger bondeelementene en metode som kan gjøre dem om til andre brikker hvis de kommer til slutten av brettet. Vi kaller det transformPiece-metoden.

Ikke alle brikker trenger transformPiece-metoden. Så vi ønsker ikke å legge den i Piece-klassen. I stedet kan vi lage en underklasse som heter Pant. Fordi det er en underklasse, arver den alle attributtene fra Piece. Så et eksempel på underklassen Pant inneholder en tillatt farge, høyde, form og bevegelse.

Men det inkluderer også transformPiece-metoden. Nå trenger vi aldri å bekymre oss for å bruke den funksjonen på en rook ved et uhell. Her er en teknisk forklaring:

Å lage underklasser sparer også mye tid. I stedet for å lage nye klasser for alt, kan programmerere lage en baseklasse og deretter utvide den til nye underklasser når de trenger det. (Det er imidlertid verdt å merke seg det overdreven avhengighet av arv er dårlig 10 grunnleggende programmeringsprinsipper hver programmerer må følgeSkriv alltid kode som kan vedlikeholdes av alle som kan ende opp med å jobbe med programvaren din. Her er flere programmeringsprinsipper som hjelper deg med å rydde opp i handlingen. Les mer .)

Objektorientert programmering: Polymorfisme

Polymorfisme er et resultat av arv. Full forståelse av polymorfisme krever litt programmeringskunnskap, så vi vil bare holde oss til det grunnleggende her. Kort sagt, polymorfisme lar programmerere bruke metoder med samme navn, men med forskjellige gjenstander.

For eksempel kan vår Piece-klasse ha en bevegelsesmetode () som beveger et stykke ett mellomrom i alle retninger. Det fungerer for kongen, men ikke for noe annet. For å løse dette problemet kan vi definere en ny bevegelsesmetode i underklassen Rook som definerer bevegelse som et ubegrenset antall mellomrom fremover, bakover, venstre eller høyre.

Når en programmerer påberoper seg trekkmetoden () og bruker en brikke som argument, vil programmet vite nøyaktig hvordan brikken skal bevege seg. Dette sparer massevis av tid på å prøve å finne ut hvilke av mange forskjellige metoder du bør bruke.

Objektorientert programmering i et nøtteskall

Hvis hodet ditt snurrer litt etter de fire siste definisjonene, ikke bekymre deg for mye. Her er de viktigste tingene du trenger å huske:

  • Objektorientert programmering samler informasjon inn i enkeltstående enheter som kalles objekter.
  • Hvert objekt er et enkelt eksempel på en klasse.
  • Abstraksjon skjuler den indre funksjonen til et objekt når det ikke er nødvendig å se dem.
  • Innkapsling lagrer relaterte variabler og metoder i objekter og beskytter dem.
  • Arv gjør det mulig for underklasser å bruke attributter fra foreldreklasser.
  • Polymorfisme gjør at objekter og metoder kan håndtere flere forskjellige situasjoner med et enkelt grensesnitt.

Hvis du kan huske disse punktene, har du et godt grep om hva objektorientert programmering er. De fire grunnleggende om objektorientert programmering, som jeg nevnte, kan være litt vanskelig å få tak i. Men når du begynner å programmere, vil de bli tydeligere.

Husk at vi bare har diskutert generaliteter i denne artikkelen. Ulike objektorienterte språk vil ha egne påfunn og måter å få ting til å skje. Med en gang du Velg riktig språk for deg Ser du etter de beste programmeringsspråkene? Start her!Enten du er helt ny på programmeringsspråk eller ønsker å hoppe inn i en ny type programmering, er et av de viktigste spørsmålene å stille: "Hvilket programmeringsspråk er riktig for meg?" Les mer , vil du begynne å lære hvordan det implementerer OOP-prinsipper.

Dann er en innholdsstrategi og markedskonsulent som hjelper bedrifter med å generere etterspørsel og potensielle kunder. Han blogger også om strategi og innholdsmarkedsføring på dannalbright.com.