Hvad er objektorienteret programmering? Grundlaget forklaret i Laymans vilkår

De fleste moderne programmeringssprog understøtter det objektorienterede programmerings (OOP) paradigme. Men hvad er OOP, og hvorfor er det så nyttigt?

De fleste moderne programmeringssprog understøtter det objektorienterede programmerings (OOP) paradigme.  Men hvad er OOP, og hvorfor er det så nyttigt?
Reklame

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

Der findes alle mulige tekniske forklaringer til hvad det er, men i dag tager vi et kig på at definere objektorienteret programmering på en enkel måde.

Før vi starter: Procedurale sprog

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

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

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

Procedurelle sprog fungerede godt for en tid (og nogle er stadig i brug). Men når du ønsker at programmere noget ud over en grundlæggende rækkefølge af trin, kan processuelle sprog blive vanskelige at håndtere. Det er her, objektorienteret programmering kommer ind.

Objektet med objektorienteret programmering

Så 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 entydig enhed.

Vi dykker dybere ind i hvad det egentlig betyder i et sekund med et eksempel, men først skal vi tale om klasser . Klasser er slags som præ-objekter. De indeholder en liste over attributter, der, når de er defineret, bliver et objekt.

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

Lad os tage eksemplet på programmering af et skakspil. Vi kan have en klasse kaldet stykke. Inden for stykke har vi en liste over attributter:

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

Et objekt definerer blot en bestemt forekomst af en ting, der tilhører den klasse.

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

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

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

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

Objektorienteret programmering: Abstraktion

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

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

Det samme gælder for objekter i objektorienteret programmering. I vores skakeksempel kan vi have en move () metode. Denne metode kunne kræve mange data og andre metoder. Det kan have brug for initialposition og slutpositionsvariabler. Det kunne bruge en anden metode til at bestemme, om det er taget et stykke.

Men det behøver du ikke at vide. Alt du behøver at vide er, at når du fortæller stykket 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 er data-både variabler og metoder.

Variablerne i et objekt holdes generelt private, hvilket betyder, at andre objekter og metoder ikke kan få adgang til dem. Objekter kan kun påvirkes ved at bruge deres metoder.

Et biskopobjekt kan indeholde flere stykker information. Det kan for eksempel have en variabel kaldet "position." Denne variabel er nødvendig for at bruge metoden move (). Og selvfølgelig har den en farve.

Ved at gøre positionsvariablen privat og flytte () -metoden offentlig, beskytter en programmør bevægelsesvariablen 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 farve på stykket skal forblive konstant.)

Disse variabler og metoder holdes inden for biskopobjektet. 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

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

I vores skakspil har brikestykkerne brug for en metode, der kan gøre dem til andre stykker, hvis de gør det til enden af ​​brættet. Vi kalder det transformPiece () -metoden.

Ikke alle dele har brug for transformPiece () -metoden. Så vi ville ikke sætte det i stykklassen. I stedet kan vi oprette en underklasse kaldet Pawn. Fordi det er en underklasse, arver det alle attributter fra Piece. Så et eksempel på underklassen Pawn indeholder en farve, højde, form og bevægelse tilladt.

Men det inkluderer også metoden transformPiece (). Nu er vi aldrig nødt til at bekymre os om ved en uheld at bruge den funktion på en røg. Her er en teknisk forklaring:

Oprettelse af underklasser sparer også meget tid. I stedet for at skabe nye klasser for alt, kan programmører oprette en base klasse og derefter udvide den til nye underklasser, når de skal. (Det er dog værd at bemærke, at over-afhængighed på arv er dårlig 10 Grundlæggende programmeringsprincipper Hver programmør skal følge 10 grundlæggende programmeringsprincipper Hver programmør skal følge Skriv altid kode, der kan opretholdes af enhver, der måske ender med at arbejde på din software. ende, her er flere programmeringsprincipper, der hjælper dig med at rense din handling. Læs mere.)

Objektorienteret programmering: Polymorfisme

Polymorfisme er et resultat af arv. Fuldt forstående polymorfisme tager nogle programmeringskendskab, så vi skal bare holde fast i det grundlæggende her. Kort sagt, giver polymorfisme programmerere mulighed for at anvende metoder med samme navn, men med forskellige genstande .

For eksempel kan vores stykklasse have en move () metode, der flytter et stykke et rum i enhver retning. Det virker for kongens stykke, men ikke for noget andet. For at løse dette problem kan vi definere nye move () -metode i underklassen Rook, der definerer bevægelse som et ubegrænset antal mellemrum fremad, bagud, venstre eller højre.

Nu, når en programmør påberåber move () -metoden og bruger et stykke som argumentet, vil programmet vide præcis, hvordan stykket skal bevæge sig. Dette sparer tid for at forsøge at finde ud af, hvilke af mange forskellige metoder du skal bruge.

Objektorienteret programmering i et nøddeskal

Hvis dit hoved springer 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 i enkelte enheder kaldet objekter.
  • Hvert objekt er en enkelt forekomst af en klasse.
  • Abstraktion skjuler et objekts indre virkninger, når det ikke er nødvendigt at se dem.
  • Indkapsling lagrer relaterede variabler og metoder inden for objekter og beskytter dem.
  • Arv giver underklasser mulighed for at bruge attributter fra forældreklasser.
  • Polymorfisme giver objekter og metoder til 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 elementer i objektorienteret programmering, som jeg nævnte, kan være lidt svært at få et håndtag på. Men når du begynder at programmere, bliver de mere klare.

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

In this article