Objektorienterad programmering
Objektorienterad programmering (OOP) är ett sätt att skriva datorprogram som använder idén om "objekt" för att representera data och metoder. Vanligtvis var datorprogrammen bara en lista med instruktioner till datorn, där man bad datorn att göra vissa saker på ett visst sätt, vilket kallas procedurell programmering. I objektorienterad programmering använder datorprogrammen dock objekt som talar med varandra och ändrar data i dessa objekt så att de fungerar på det sätt som användaren vill. Det sätt på vilket objektorienterad programmering är utformad hjälper också utvecklaren genom att koden lätt kan återanvändas i andra delar av programmet eller till och med av andra personer.
De flesta programmeringsspråk är en blandning av olika typer av sätt att skriva datorprogram. Python gör det till exempel möjligt att skriva datorprogram både inom objektorienterad programmering och procedurell programmering. Det finns många programmeringsspråk som gör det möjligt att skriva datorprogram i OOP, Några av dessa programmeringsspråk är t.ex: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python osv.
Funktioner
Huvudtanken med objektorienterad programmering är att allt är ett objekt. Objektet kan dock vara av olika typer:
- Variabler kan innehålla information (eller data) av olika typer som stöds av programmeringsspråket. Exempel på detta är datatypen heltal och datastrukturen listor. Variabler är en idé som redan finns i procedurella programmeringsspråk. I objektorienterad programmering kallas variabler huvudsakligen för attribut.
- Procedurer (även kallade funktioner, metoder eller rutiner) är en lista med instruktioner som säger åt datorn att ta emot inmatning, göra vissa beräkningar eller ändra data och returnera utdata till användaren. Procedurer är också en idé som redan finns i procedurella programmeringsspråk. I objektorienterad programmering kallas förfaranden huvudsakligen för metoder.
- Klasser är en samling av olika variabler och procedurer. Klasserna pratar vanligtvis med varandra för att göra ändringar i data så att de fungerar på det sätt som användaren vill.
Objekt är en term som används för att hänvisa till instanser av klasser.
Exempel
I exemplen nedan skapar vi en klass som heter Human
. Denna klass innehåller attributen name
(för personens namn) och friend (
för vänens namn). Var och en av metoderna i klassen Human
innehåller en lista med instruktioner som använder både attributet name
och friend.
Python
Denna kod är i Python.
Java
Denna kod är i Java.
Den mänskliga klassen
En metod för att prata med den mänskliga klassen ovan
Kritik
Även om objektorienterad programmering är populär finns det många som tycker att den är dålig och kritiserar den.
- Luca Cardelli skrev en artikel med titeln "Bad Engineering Properties of Object-Oriented Languages".
- Richard Stallman skrev 1995: "Att lägga till OOP i Emacs är inte en klar förbättring; jag använde OOP när jag arbetade med Lisp Machine-fönstersystemen, och jag håller inte med om den vanliga uppfattningen att det är ett överlägset sätt att programmera."
- En studie av Potok et al. visar att det är mycket liten skillnad i produktivitet mellan OOP och procedurella metoder.
- Christopher J. Date sade att det är svårt att jämföra OOP med andra saker, särskilt hur OOP och den andra saken är relaterade, eftersom folk inte är överens om vad OOP är.
- Alexander Stepanov föreslog att OOP ger en synvinkel som är begränsad när det gäller matematik, och kallade det "nästan lika mycket en bluff som artificiell intelligens".
- Paul Graham, en framgångsrik internetförsäljare och programmerare, har föreslagit att syftet med OOP är att fungera som en flockmekanism som hindrar genomsnittliga programmerare i genomsnittliga organisationer från att "göra alltför stor skada". Detta bromsar också snabbare, bättre programmerare som vet hur man gör saker och ting på ett kraftfullare och mer kompakt sätt ... [1]
Frågor och svar
F: Vad är objektorienterad programmering?
S: Objektorienterad programmering är ett sätt att skriva datorprogram där "objekt" står för data och metoder.
F: Hur skiljer sig objektorienterad programmering från procedurprogrammering?
S: I procedurprogrammering är datorprogram en lista med instruktioner för datorn, som säger åt den att göra vissa saker på ett visst sätt. I objektorienterad programmering använder datorprogram objekt som pratar med varandra för att ändra data i dessa objekt och för att fungera på det sätt som användaren vill.
F: Hur gynnar objektorienterad programmering utvecklare?
S: Objektorienterad programmering gör att kod enkelt kan återanvändas av andra delar av programmet eller till och med av andra personer.
F: Vad är programmeringsspråket Python känt för?
S: Python gör det möjligt att skriva datorprogram både i objektorienterad programmering och i procedurprogrammering.
F: Kan du ge exempel på programmeringsspråk som gör det möjligt att skriva datorprogram i objektorienterad programmering?
S: Programmeringsspråk som gör det möjligt att skriva datorprogram i objektorienterad programmering är C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C#, etc.
F: Vad är objekt i objektorienterad programmering?
S: Objekt är enheter i objektorienterad programmering som innehåller data och metoder.
F: Hur fungerar objekt i objektorienterad programmering?
S: Objekt interagerar med varandra för att ändra data i dessa objekt och för att fungera på ett sätt som användaren vill.