Reklame

Hvis du har gjort noget begynderprogrammering, eller endda begyndt at se på forskellige sprog, har du sandsynligvis stødt på udtrykket "objektorienteret programmering" (eller "OOP").

Der er alle mulige tekniske forklaringer på, hvad det er, men i dag vil vi se på at definere objektorienteret programmering på en enkel måde.

Før vi starter: proceduresprog

For at forstå, hvad et objektorienteret programmeringssprog er, skal du forstå, hvad det erstattede. Tidlige programmeringssprog var proceduremæssige - såkaldte fordi programmereren ville definere et meget specifikt sæt procedurer, som computeren ville gennemføre.

Hvad er objektorienteret programmering, og hvordan man kommer i gang med at lære det

I de tidligste dage blev procedurer skrevet på stempelkort. Disse trin tog data, udførte en række handlinger på disse data og sendte derefter nye data ud.

Proceduresprog fungerede godt i en tid (og nogle er stadig i brug). Men når du vil programmere noget ud over en grundlæggende trinvis rækkefølge, kan proceduresprog blive vanskelige at styre. Det er her objektorienteret programmering kommer ind.

instagram viewer

Formålet med objektorienteret programmering

Så hvad er objektorienteret programmering?

Det første objektorienterede sprog (generelt accepteret at være Simula) introducerede ideen om objekter. Objekter er samlinger af oplysninger, der behandles som en entitet.

Vi dykker dybere ned i, hvad det faktisk betyder i et sekund med et eksempel, men først skal vi tale om klasser. Klasser er på lignende måde præ-objekter. De indeholder en liste over attributter, der, når de defineres, bliver et objekt.

Hvad er objektorienteret programmering, og hvordan man kommer i gang med at lære det

Lad os tage eksemplet med programmering af et skakspil. Vi har måske en klasse, der hedder Stykke. Inden for stykke har vi en liste over attributter:

  • Farve
  • Højde
  • Form
  • Bevægelse tilladt

Et objekt definerer simpelthen et bestemt eksempel på en ting, der hører til den klasse.

Så vi kunne have et objekt kaldet WhiteQueen. Dette objekt ville have definitioner for alle fire attributter (hvid, høj, cylindrisk med crenellationer, et hvilket som helst antal mellemrum i en hvilken som helst retning). Det har måske også metoder eller funktioner.

Hvad gør dette så meget bedre end den proceduremæssige tilgang?

Kort sagt objektorienteret programmeringssprog (som Java) gør det lettere at organisere data og kode på en måde, der er mere alsidig til større projekt.

For at diskutere det lidt mere detaljeret, taler vi om de fire grundlæggende elementer i objektorienteret programmering.

Objektorienteret programmering: Abstraktion

Bare fordi du vil bruge noget, betyder det ikke, at du behøver at vide, hvordan det fungerer. En espressomaskine er for eksempel kompleks. Men du behøver ikke vide, hvordan det fungerer. Du skal bare vide, at når du rammer "Til", får du espresso.

Hvad er objektorienteret programmering, og hvordan man kommer i gang med at lære det

Det samme gælder objekter i objektorienteret programmering. I vores skakeksempel har vi muligvis en flytning () -metode. Denne metode kan kræve en masse data og andre metoder. Det kan være nødvendigt med den indledende position og den endelige positionsvariabler. Det kan bruge en anden metode til at bestemme, om det er fanget et stykke.

Men det behøver du ikke vide. Alt hvad du behøver at vide er, at når du beder stykket om at flytte, bevæger det sig. Det er abstraktion.

Objektorienteret programmering: Indkapsling

Indkapsling er en af ​​måderne, som objektorienteret programmering skaber abstraktion. Hvert objekt er en samling af data, der behandles som en enkelt enhed. Og inden for disse objekter findes data - både variabler og metoder.

Variablerne inden for et objekt holdes normalt private, hvilket betyder, at andre objekter og metoder ikke kan få adgang til dem. Objekter kan kun påvirkes ved hjælp af deres metoder.

Et biskop-objekt kan muligvis indeholde flere oplysninger. For eksempel kan det have en variabel kaldet "position." Denne variabel er nødvendig for at bruge flytningen () -metoden. Og selvfølgelig har den en farve.

Ved at gøre positionsvariablen privat og flytningen () -metoden offentlig beskytter en programmerer flytningsvariablen mod at blive påvirket af noget andet. Og hvis farven er en privat variabel, er der ingen måde for et andet objekt at ændre det, medmindre der er en metode, der tillader ændringen. (Som du sandsynligvis ikke ville have, da farven på stykket skal forblive konstant.)

Disse variabler og metoder holdes inden for Bishop-objektet. Fordi de er indkapslet, kan en programmør foretage en ændring af objektets struktur eller indhold uden at bekymre sig om den offentlige grænseflade.

Objektorienteret programmering: Arv

Ud over klasser har objektorienterede programmeringssprog også underklasser. Disse indeholder alle attributterne fra forældreklassen, men de kan også indeholde andre attributter.

I vores skakspil har bønderne brug for en metode, der kan forvandle dem til andre brikker, hvis de kommer til slutningen af ​​brættet. Vi kalder det transformPiece-metoden.

Ikke hvert stykke har brug for metoden transformPiece (). Så vi ønsker ikke at placere det i klassen Stykke. I stedet kan vi oprette en underklasse kaldet bonde. Fordi det er en underklasse, arver det alle attributterne fra Piece. Så et eksempel på underklassen Pant indeholder en tilladt farve, højde, form og bevægelse.

Men det inkluderer også transformPiece-metoden. Nu behøver vi aldrig at bekymre os om ved en fejltagelse at bruge denne funktion på en rook. Her er en teknisk forklaring:

Oprettelse af underklasser sparer også meget tid. I stedet for at oprette nye klasser til alt, kan programmerere oprette en baseklasse og derefter udvide den til nye underklasser, når de har brug for det. (Det er dog værd at bemærke det overdreven afhængighed af arv er dårlig 10 grundlæggende programmeringsprincipper Hver programmerer skal følgeSkriv altid kode, der kan vedligeholdes af alle, der kan ende med at arbejde på din software. Med henblik herpå er her flere programmeringsprincipper, der hjælper dig med at rydde op i din handling. Læs mere .)

Objektorienteret programmering: Polymorfisme

Polymorfisme er et resultat af arv. En fuldstændig forståelse af polymorfisme kræver en vis programmeringskendskab, så vi vil bare holde os til det grundlæggende her. Kort sagt tillader polymorfisme programmerere at bruge metoder med samme navn, men med forskellige objekter.

For eksempel kan vores Piece-klasse muligvis have en flytning () -metode, der flytter et stykke en plads i en hvilken som helst retning. Det fungerer for kongen, men ikke for noget andet. For at løse dette problem kan vi definere en ny bevægelsesmetode () i underklassen Rook, der definerer bevægelse som et ubegrænset antal mellemrum fremad, bagud, venstre eller højre.

Når en programmerer nu påberåber sig metoden til at flytte () og bruger et stykke som argument, vil programmet vide nøjagtigt, hvordan brikken skal flytte. Dette sparer masser af tid på at prøve at finde ud af, hvilke af mange forskellige metoder du skal bruge.

Objektorienteret programmering i et nøddeskal

Hvis dit hoved roterer lidt efter de sidste fire definitioner, skal du ikke bekymre dig for meget. Her er de vigtigste ting, du skal huske:

  • Objektorienteret programmering indsamler information til enkelte enheder kaldet objekter.
  • Hvert objekt er en enkelt forekomst af en klasse.
  • Abstraktion skjuler den indre funktion af et objekt, når det ikke er nødvendigt at se dem.
  • Indkapsling gemmer relaterede variabler og metoder inden for objekter og beskytter dem.
  • Arv giver underklasser mulighed for at bruge attributter fra overordnede klasser.
  • Polymorfisme tillader objekter og metoder at håndtere flere forskellige situationer med en enkelt grænseflade.

Hvis du kan huske disse punkter, har du et godt greb om, hvad objektorienteret programmering er. De fire grundlæggende i objektorienteret programmering, som jeg nævnte, kan være lidt vanskelige at få fat på. Men når du begynder at programmere, bliver de mere tydelige.

Husk, at vi kun har diskuteret generaliteter i denne artikel. Forskellige objektorienterede sprog vil have deres egne påfald og måder til at få ting til at ske. Når først du vælg det rigtige sprog til dig Leder du efter de bedste programmeringssprog? Start her!Uanset om du er helt ny med programmeringssprog eller ønsker at springe ind i en ny form for programmering, er et af de vigtigste spørgsmål at stille: "Hvilket programmeringssprog er det rigtige for mig?" Læs mere , vil du begynde at lære, hvordan det omsætter OOP-principper i praksis.

Dann er en indholdsstrategi og marketingkonsulent, der hjælper virksomheder med at skabe efterspørgsel og kundeemner. Han blogger også om strategi og indholdsmarkedsføring på dannalbright.com.