Objektorientering Flashcards
Vad innebär procedurprogrammering?
Procedurprogrammering innebär att skriva kod steg för steg, precis som när man följer ett recept. Man beskriver exakt vad programmet ska göra i varje steg.
Hur relaterar datastrukturer till objekt i programmering?
Datastrukturer representerar verkliga objekt (som MacBook eller iPhone) i ett program, och kan ses som grunden för att skapa objekt i objektorienterad programmering.
Vad visar exemplet med personer och tupel?
Exemplet med personer och tupel visar hur datastrukturer kan representera information om verkliga personer, som deras namn, kön och födelseår.
Vad är procedurprogrammeringens grundprinciper?
Procedurprogrammering bygger på datastrukturer som representerar objekt, och procedurer som är steg-för-steg-instruktioner för att hantera dessa objekt.
Varför blev procedurprogrammering ohållbart för större program?
Procedurprogrammering blev ohållbart för större program eftersom det ofta ledde till “spaghettikod”, vilket innebär att koden blev rörig, svår att förstå och svårt att underhålla.
Hur skiftar programmering från procedurer till objekt?
Programmering skiftar från procedurer till objekt genom att fokusera på att modellera verkliga objekt och deras egenskaper, snarare än enbart på instruktioner.
Vad är skillnaden mellan procedurer och objekt?
I stället för att bara fokusera på steg-för-steg-instruktioner (procedurer) så fokuserar objektorienterad programmering på objekt som har både egenskaper (data) och operationer (vad de kan göra).
Vad innebär objektorienterad programmering?
Objektorienterad programmering innebär att programmet består av objekt som representerar verkliga saker. Dessa objekt har både egenskaper (data) och operationer (vad de kan göra).
Hur representeras en bil som ett objekt i programmering?
En bil som objekt i programmering kan ha egenskaper som färg och toppfart, och operationer som att köra och tuta.
Hur representeras en person som ett objekt i programmering?
En person som objekt kan ha egenskaper som namn, kön och födelseår, samt operationer som att ändra namn och räkna ut ålder.
Vad binder samman data och operationer i objektorienterad programmering?
I objektorienterad programmering knyts data (egenskaper) och operationer (procedurer) samman inom ett objekt, vilket ger bättre struktur och hantering.
Vad är en klass i objektorienterad programmering?
En klass är en ritning som definierar vilka egenskaper (instansvariabler) och operationer (metoder) ett objekt kan ha. Objekt skapas från klassen.
Vad är instansvariabler och metoder i ett objekt?
Instansvariabler är egenskaper som tillhör ett specifikt objekt, och metoder är operationer som objektet kan utföra. Båda definieras i objektets klass.
Vad händer när du skapar flera objekt från samma klass?
När du skapar flera objekt från samma klass, får varje objekt sina egna instansvariabler med unika värden. Även om objekten delar samma metoder från klassen, har varje objekt sina egna data.
Hur definierar du en klass i Python?
En klass i Python definieras med class-nyckelordet följt av klassens namn. Inuti klassen kan du definiera en konstruktor-metod (__init__) och andra metoder. Exempel:
class Person:
def __init__(self, name, birth):
self.name = name
self.birth = birth
Hur skapar du ett objekt från en klass i Python?
Du skapar ett objekt genom att anropa klassen som en funktion och skicka med värden för instansvariablerna. Exempel:
person1 = Person(“Andreas”, 1975)
Detta skapar ett objekt person1 med namnet “Andreas” och födelseåret 1975.
Hur uppdaterar du ett objekt i Python efter att det har skapats?
Du kan uppdatera ett objekt genom att anropa en metod på objektet. Exempel:
person1.update_name(“Kalle”)
Detta ändrar person1’s namn till “Kalle”.
Kan du skapa flera objekt från samma klass? Hur skiljer de sig?
Ja, du kan skapa flera objekt från samma klass. Varje objekt har sina egna instansvariabler och värden men delar samma metoder. Exempel:
person2 = Person(“Stina”, 1991)
Nu finns det två objekt: person1 och person2 med sina egna namn och födelseår.
Vad innebär det att objekt från samma klass har samma instansvariabler och metoder?
Objekt från samma klass har samma typ av egenskaper (instansvariabler) och funktioner (metoder), men varje objekt har sina egna unika värden. Exempel:
person1: name = Andreas, birth = 1975
person2: name = Stina, birth = 1991
De har samma metoder, men deras data är olika eftersom de är separata objekt.
Vad är self i en metod och varför används det?
Self används för att referera till det aktuella objektet i en metod. Det gör att metoder kan ändra och använda objektets instansvariabler och andra metoder inom klassen.
Vad är syftet med __init__-metoden i en klass?
__init__-metoden är en konstruktor som körs automatiskt när ett nytt objekt skapas. Den initierar objektets instansvariabler med de värden som skickas in vid skapandet.
Vad är syftet med self i __init__-metoden?
self i __init__-metoden säkerställer att de instansvariabler som definieras hör till det specifika objektet som skapas, vilket gör att varje objekt kan ha sina egna data.
Bil exemplet
.
Vad innebär information hiding (inkapsling) i programmering?
Information hiding innebär att dölja de interna detaljerna i ett objekt, så att programmeraren bara behöver veta hur man använder objektet, inte hur det fungerar inuti. Hiding innebär att dölja detaljer om hur något fungerar inuti en klass eller funktion. Användaren behöver bara veta hur man använder den, inte hur den är byggd.
Varför är information hiding viktigt?
Information hiding är viktigt eftersom det gör program enklare att använda och förstå. Det förhindrar också att någon av misstag ändrar eller påverkar interna delar av ett objekt.
Vad gäller för dokumentation av programbibliotek som tillämpar principen “Information Hiding”?
man beskriver vilka exceptions som kan inträffa
man beskriver vad funktionerna returnerar
man beskriver vilka parametrar funktionerna använder
man beskriver vilka objekt och funktioner som ingår i biblioteket
Hur döljer man en variabel i Python?
Genom att börja variabelns namn med två understrykningar (__) gör man den privat och otillgänglig direkt utanför klassen.
Vad är getters och setters i Information Hiding?
Getters är metoder som hämtar värdet av en privat variabel, och setters är metoder som ändrar värdet. De kontrollerar åtkomst till variablerna. Ger skräddarsydd åtkomst till variabler inuti i ett objekt.
Varför använder vi getters och setters i Information Hiding?
För att kontrollera hur variabler kan läsas eller ändras. Det skyddar datan och säkerställer att den bara ändras på ett kontrollerat sätt.
Hur ser Information Hiding ut i Python-kod?
Exempel:
class Bil:
def __init__(self, regnr):
self.__regnr = regnr
# Privat variabel
def get_regnr(self): return self.\_\_regnr # Getter för att läsa variabeln def set_regnr(self, regnr): self.\_\_regnr = regnr # Setter för att ändra variabeln
Här är __regnr en dold variabel, och get_regnr() och set_regnr() används för att komma åt den.
Klassförhållanden
.