Objektorientering Flashcards

1
Q

Vad innebär procedurprogrammering?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hur relaterar datastrukturer till objekt i programmering?

A

Datastrukturer representerar verkliga objekt (som MacBook eller iPhone) i ett program, och kan ses som grunden för att skapa objekt i objektorienterad programmering.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vad visar exemplet med personer och tupel?

A

Exemplet med personer och tupel visar hur datastrukturer kan representera information om verkliga personer, som deras namn, kön och födelseår.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad är procedurprogrammeringens grundprinciper?

A

Procedurprogrammering bygger på datastrukturer som representerar objekt, och procedurer som är steg-för-steg-instruktioner för att hantera dessa objekt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Varför blev procedurprogrammering ohållbart för större program?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hur skiftar programmering från procedurer till objekt?

A

Programmering skiftar från procedurer till objekt genom att fokusera på att modellera verkliga objekt och deras egenskaper, snarare än enbart på instruktioner.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vad är skillnaden mellan procedurer och objekt?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad innebär objektorienterad programmering?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hur representeras en bil som ett objekt i programmering?

A

En bil som objekt i programmering kan ha egenskaper som färg och toppfart, och operationer som att köra och tuta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hur representeras en person som ett objekt i programmering?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Vad binder samman data och operationer i objektorienterad programmering?

A

I objektorienterad programmering knyts data (egenskaper) och operationer (procedurer) samman inom ett objekt, vilket ger bättre struktur och hantering.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Vad är en klass i objektorienterad programmering?

A

En klass är en ritning som definierar vilka egenskaper (instansvariabler) och operationer (metoder) ett objekt kan ha. Objekt skapas från klassen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vad är instansvariabler och metoder i ett objekt?

A

Instansvariabler är egenskaper som tillhör ett specifikt objekt, och metoder är operationer som objektet kan utföra. Båda definieras i objektets klass.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vad händer när du skapar flera objekt från samma klass?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hur definierar du en klass i Python?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hur skapar du ett objekt från en klass i Python?

A

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.

17
Q

Hur uppdaterar du ett objekt i Python efter att det har skapats?

A

Du kan uppdatera ett objekt genom att anropa en metod på objektet. Exempel:
person1.update_name(“Kalle”)
Detta ändrar person1’s namn till “Kalle”.

18
Q

Kan du skapa flera objekt från samma klass? Hur skiljer de sig?

A

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.

19
Q

Vad innebär det att objekt från samma klass har samma instansvariabler och metoder?

A

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.

20
Q

Vad är self i en metod och varför används det?

A

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.

21
Q

Vad är syftet med __init__-metoden i en klass?

A

__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.

22
Q

Vad är syftet med self i __init__-metoden?

A

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.

23
Q

Bil exemplet

A

.

24
Q

Vad innebär information hiding (inkapsling) i programmering?

A

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.

25
Q

Varför är information hiding viktigt?

A

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.

26
Q

Vad gäller för dokumentation av programbibliotek som tillämpar principen “Information Hiding”?

A

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

27
Q

Hur döljer man en variabel i Python?

A

Genom att börja variabelns namn med två understrykningar (__) gör man den privat och otillgänglig direkt utanför klassen.

28
Q

Vad är getters och setters i Information Hiding?

A

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.

29
Q

Varför använder vi getters och setters i Information Hiding?

A

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.

30
Q

Hur ser Information Hiding ut i Python-kod?

A

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.

31
Q

Klassförhållanden

A

.