Objektorienterad programmering

Wikibooks har böcker relaterade till Objektorientering.
Böcker

Objektorienterad programmering (engelska: Object Oriented Programming, OOP) är en programmeringsmetod i vilken ett program kan innehålla en varierande uppsättning objekt som interagerar med varandra. De ursprungliga idéerna i metoden (objekt, inkapsling) uppstod i slutet av 1960-talet i programmeringsspråk för simulering. De byggdes sedan på med arv under mitten och slutet av 1980-talet. Denna metod att programmera anses av förespråkarna vara effektiv och kraftfull, speciellt vid konstruktion av större program, eftersom oönskad påverkan mellan programmets olika delar minimeras. Det är också oftare lättare att återanvända programdelar från ett program i ett annat, eftersom begreppen, objektklasserna, ofta blir generella och användbara i olika sammanhang.

Objekt

Ett objekt är en instans av en klass, det vill säga ett slags simulering av en företeelse som används inom objektorienterad programmering för att samla data och kod som hör ihop. Ett objekt kan till exempel vara en bok i ett program som används på ett bibliotek för att hantera utlåning. Boken har ett antal egenskaper som beskrivs av dess attribut (författare, titel, antal sidor, egenskapen att vara utlånad eller tillgänglig till exempel) och ett antal metoder som kan användas för att hämta eller ändra information (man kanske vill veta författare till boken, eller ändra status som utlånad eller tillgänglig). Ett annat objekt skulle kunna vara en låntagare som då kan ha en samling böcker som den lånat som attribut och metoder för att låna och lämna tillbaka böcker.

Objektorientering handlar mycket om att designa de objekttyper, så kallade klasser, som behövs. När ett program körs skapar det, ibland med hjälp av användaren, så många objekt av dessa klasser som behövs.

Attribut

Ett attribut är en variabel eller konstant som beskriver en egenskap hos ett objekt. Ett attribut ges ett namn så att det kan anropas/användas i programmet. Beroende på programmeringsspråk så kan man också behöva ange typ för attributet (heltal, flyttal, en pekare eller en textsträng till exempel) och det är ofta också möjligt att ange olika sekretessnivåer för attribut. Detta för att hindra eller öppna upp för åtkomst av andra delar av programmet som vill veta vad attributet har för värde eller namn.

Metoder

En metod är en funktion som kan hämta information från ett objekt eller manipulera objektets attribut. En metod som hämtar information benämns ofta getter (efter engelskans get, hämta) och en metod som ändrar ett attribut kallas setter (efter engelskans set, ställa in).

Nyckelkoncept

Objektorienterad programmering betonar följande begrepp:

Historia

OOP-konceptet tillkom på slutet av 1960-talet genom norrmännen Kristen Nygaard och Ole-Johan Dahls arbete med programspråket Simula. För detta fick de båda Turingpriset 2001.

Delvis har OOP inneburit ett paradigmskifte inom programmering, och kan på så sätt jämföras med till exempel strukturerad programmering, som lanserades i slutet av 1970-talet. Väsentligen innebär OOP ett ökat fokus på de data och begrepp som används, snarare än de processer som ska genomföras med dessa data.

OOP har tidvis använts, och missbrukats, som ett marknadsföringsbegrepp, och har då fått täcka flera olika metoder att modularisera och dela upp program. Beroende på vilket programmeringsspråk som har använts, har olika detaljer i och tolkningar av de grundläggande begreppen betonats och hävdats vara väsentliga. Det har till exempel förekommit diskussioner huruvida multipelt arv är nödvändigt för OOP, och om så kallad "dynamisk bindning" eller "sen bindning" krävs för att uppnå de eftersträvade fördelarna med OOP. Begreppet Object-Based Programming (istället för Object-Oriented Programming, OOP) har myntats för programmeringsspråk som inte stöder alla delar i OOP-paradigmen t.ex. 1983 ISO-standarden av Ada (1995 blev Ada världens första ISO-standardiserade objektorienterade programmeringsspråk).

Programmeringsspråk

Det går att programmera objektorienterat i en mängd olika programmeringsspråk. Nedan listas de mest välkända programmeringsspråken som stödjer objektorientering.

Källor

  1. ^ Turingpriset - Kristen Nygaard
  2. ^ Turingpriset - Ole-Johan Dahl