
William Charles
0
4264
759
Hvis du har lavet nogle begynderprogrammering, eller endda begyndt at se på forskellige sprog, er du sandsynligvis kommet over setningen “objektorienteret programmering” (eller “OOP”).
Der er alle mulige tekniske forklaringer på, hvad det er, men i dag skal 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.
I de tidligste dage blev procedurerne skrevet på stempelkort. Disse trin tog data, udførte en række handlinger på disse data og udsendte derefter nye data.
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.
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 ental enhed.
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.
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 kan også have 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 vil vi tale om de fire grundlæggende elementer i objektorienteret programmering.
Objektorienteret programmering: Abstraktion
Bare fordi du vil bruge noget, betyder det ikke, at du er nødt til at vide, hvordan det fungerer. En espressomaskine er for eksempel kompleks. Men du behøver ikke vide, hvordan det fungerer. Du skal bare vide det, når du rammer “På,” du får espresso.
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 er 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 Bishop-objekt kan muligvis indeholde flere oplysninger. For eksempel kunne det have en variabel, der kaldes “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 programmerer 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 af transformPiece-metoden. Så vi ville ikke have lyst til at sætte det i Piece-klassen. 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 at bruge denne funktion ved en fejltagelse ved et uheld. 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, at over-afhængighed af arv er dårlig. 10 Grundlæggende programmeringsprincipper Hver programmerer skal følge 10 grundlæggende programmeringsprincipper Hver programmerer, der skal følge. Skriv altid kode, der kan vedligeholdes af alle, der kan ende med at arbejde på din software. Til det slutt, her er flere programmeringsprincipper, der hjælper dig med at rydde op i din handling.)
Objektorienteret programmering: Polymorfisme
Polymorfisme er et resultat af arv. En fuldstændig forståelse af polymorfisme kræver noget programmeringskendskab, så vi skal bare holde os til det grundlæggende her. Kort sagt giver polymorfisme programmerere mulighed for at bruge metoder med samme navn, men med forskellige objekter.
For eksempel kan vores stykke-klasse muligvis have en flytning () -metode, der flytter et stykke en plads i enhver 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 programmør nu påberåber sig flytningen () -metoden 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 elementer 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 du har valgt det rigtige sprog til dig Leder du efter de bedste programmeringssprog? Start her! 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?" , vil du begynde at lære, hvordan det omsætter OOP-principper i praksis.