Annons

Om du har gjort något nybörjarprogrammering, eller till och med börjat titta på olika språk, har du antagligen stött på frasen "objektorienterad programmering" (eller "OOP").

Det finns alla möjliga tekniska förklaringar om vad det är, men idag ska vi ta en titt på att definiera objektorienterad programmering på ett enkelt sätt.

Innan vi börjar: procedurspråk

För att förstå vad ett objektorienterat programmeringsspråk är måste du förstå vad det ersatte. Tidiga programmeringsspråk var processuella - så kallade eftersom programmeraren skulle definiera en mycket specifik uppsättning procedurer som datorn skulle utföra.

Vad är objektorienterad programmering och hur man börjar lära sig det

Under de tidigaste dagarna skrivs procedurer på stanskort. Dessa steg tog in data, utförde en sekvens av åtgärder på den datan och skickade sedan ut nya data.

Processuella språk fungerade bra en tid (och vissa används fortfarande). Men när du vill programmera något bortom en grundläggande stegsekvens, kan processspråk bli svåra att hantera. Det är där objektorienterad programmering kommer in.

instagram viewer

Målet med objektorienterad programmering

Så vad är då objektorienterad programmering?

Det första objektorienterade språket (allmänt överens om att vara Simula) införde idén om föremål. Objekt är insamlingar av information som behandlas som en enskild enhet.

Vi kommer att dyka djupare i vad det faktiskt betyder i en sekund med ett exempel, men först måste vi prata om klasser. Klasser är på samma sätt som förobjekt. De innehåller en lista med attribut som, när de definieras, blir ett objekt.

Vad är objektorienterad programmering och hur man börjar lära sig det

Låt oss ta exemplet med att programmera ett schackspel. Vi kan ha en klass som heter Piece. Inom Piece har vi en lista med attribut:

  • Färg
  • Höjd
  • Form
  • Rörelse tillåten

Ett objekt definierar helt enkelt en viss instans av en sak som tillhör den klassen.

Så vi kan ha ett objekt som heter WhiteQueen. Det objektet skulle ha definitioner för alla fyra attributen (vit, hög, cylindrisk med crenellations, valfritt antal utrymmen i valfri riktning). Det kan också ha metoder eller funktioner.

Vad gör detta så mycket bättre än förfarandet?

Kort sagt objektorienterade programmeringsspråk (som Java) gör det lättare att organisera data och kod på ett sätt som är mer mångsidigt för större projekt.

För att diskutera det mer detaljerat kommer vi att prata om de fyra grunderna för objektorienterad programmering.

Objektorienterad programmering: Abstraktion

Bara för att du vill använda något betyder inte att du behöver veta hur det fungerar. En espressomaskin, till exempel, är komplex. Men du behöver inte veta hur det fungerar. Du behöver bara veta att när du slår på "På" kommer du att få espresso.

Vad är objektorienterad programmering och hur man börjar lära sig det

Detsamma gäller för objekt i objektorienterad programmering. I vårt schackexempel kan vi ha en rörelse () -metod. Den metoden kan kräva mycket data och andra metoder. Det kan behöva startpositioner och slutpositionvariabler. Det kan använda en annan metod för att avgöra om den har fångat en bit.

Men du behöver inte veta det. Allt du behöver veta är att när du säger till stycket att flytta, rör sig det. Det är abstraktion.

Objektorienterad programmering: Inkapsling

Inkapsling är ett av de sätt som objektorienterad programmering skapar abstraktion. Varje objekt är en samling data som behandlas som en enda enhet. Och inom dessa objekt finns data - både variabler och metoder.

Variablerna inom ett objekt hålls vanligtvis privata, vilket innebär att andra objekt och metoder inte kan komma åt dem. Föremål kan endast påverkas med hjälp av deras metoder.

Ett Bishop-objekt kan innehålla flera informationer. Till exempel kan den ha en variabel som kallas "position". Den variabeln är nödvändig för att använda metoden flytta (). Och naturligtvis har den en färg.

Genom att göra positionsvariabeln privat och metoden för att flytta () offentlig, skyddar en programmerare flyttvariabeln från att påverkas av något annat. Och om färgen är en privat variabel, finns det inget sätt för ett annat objekt att ändra det om det inte finns en metod som tillåter ändringen. (Som du förmodligen inte skulle ha, eftersom färgen på stycket borde vara konstant.)

Dessa variabler och metoder hålls inom Bishop-objektet. Eftersom de är inkapslade kan en programmerare göra en förändring av objektets struktur eller innehåll utan att oroa sig för det offentliga gränssnittet.

Objektorienterad programmering: Arv

Förutom klasser har objektorienterade programmeringsspråk också underklasser. Dessa innehåller alla attribut från förälderklassen, men de kan också innehålla andra attribut.

I vårt schackspel behöver pantbitarna en metod som kan förvandla dem till andra bitar om de gör det till slutet av brädet. Vi kallar det transformPiece-metoden.

Inte varje bit behöver metoden transformPiece (). Så vi vill inte lägga det i klassen Piece. Istället kan vi skapa en underklass som heter Pant. Eftersom det är en underklass, ärver det alla attributen från Piece. Så en instans av underklassen Pant innehåller en färg, höjd, form och tillåten rörelse.

Men det inkluderar också transformPiece-metoden. Nu behöver vi aldrig oroa oss för att oavsiktligt använda den här funktionen på en rook. Här är en teknisk förklaring:

Att skapa underklasser sparar också mycket tid. Istället för att skapa nya klasser för allt kan programmerare skapa en basklass och sedan utöka den till nya underklasser när de behöver. (Det är dock värt att notera det överberoende av arv är dåligt 10 grundläggande programmeringsprinciper Varje programmerare måste följaSkriv alltid kod som kan upprätthållas av alla som kan sluta arbeta med din programvara. För detta ändamål är här flera programmeringsprinciper som hjälper dig att rensa upp din handling. Läs mer .)

Objektorienterad programmering: Polymorfism

Polymorfism är ett resultat av arv. Att helt förstå polymorfismen kräver viss programmeringskunskap, så vi kommer bara att hålla oss till grunderna här. Kort sagt, polymorfism tillåter programmerare att använda metoder med samma namn, men med olika objekt.

Till exempel kan vår Piece-klass ha en rörelse () -metod som flyttar ett stycke ett utrymme i valfri riktning. Det fungerar för kungstycket, men inte för något annat. För att fixa detta problem kan vi definiera en ny metod för flyttning () i underklassen Rook som definierar rörelse som ett obegränsat antal utrymmen framåt, bakåt, vänster eller höger.

När en programmerare åberopar förflyttningsmetoden () och använder en bit som argument, kommer programmet att veta exakt hur stycket ska röra sig. Detta sparar massor av tid på att försöka räkna ut vilka av många olika metoder du bör använda.

Objektorienterad programmering i ett nötskal

Om ditt huvud snurrar lite efter de sista fyra definitionerna, oroa dig inte för mycket. Här är de viktigaste sakerna du behöver komma ihåg:

  • Objektorienterad programmering samlar information till enskilda enheter som kallas objekt.
  • Varje objekt är en enda instans av en klass.
  • Abstraktion döljer ett objekts inre funktioner när det inte är nödvändigt att se dem.
  • Inkapsling lagrar relaterade variabler och metoder inom objekt och skyddar dem.
  • Arv gör det möjligt för underklasser att använda attribut från överordnade klasser.
  • Polymorfism tillåter objekt och metoder att hantera flera olika situationer med ett enda gränssnitt.

Om du kommer ihåg dessa punkter har du ett bra grepp om vad objektorienterad programmering är. De fyra grunderna i objektorienterad programmering, som jag nämnde, kan vara lite svåra att ta hand om. Men när du börjar programmera kommer de att bli tydligare.

Kom ihåg att vi bara har diskuterat generaliteter i den här artikeln. Olika objektorienterade språk har sina egna egendomar och sätt att få saker att hända. När du välj rätt språk för dig Letar du efter de bästa programmeringsspråken? Börja här!Oavsett om du är helt ny i programmeringsspråk eller vill hoppa in i en ny typ av programmering är en av de viktigaste frågorna att ställa: "Vilket programmeringsspråk är rätt för mig?" Läs mer , börjar du lära dig hur det implementerar OOP-principer i praktiken.

Dann är en innehållsstrategi och marknadskonsult som hjälper företag att skapa efterfrågan och leder. Han bloggar också om strategi och innehållsmarknadsföring på dannalbright.com.