OOP 12-24 Flashcards

1
Q

Vad är objektorientering?

A

Ett sätt att organisera program genom att använda objekt.

Objekt har tre huvudegenskaper: tillstånd, beteende och identitet.

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

Vilka är de tre huvudegenskaperna hos ett objekt?

A
  • Tillstånd (State)
  • Beteende (Behavior)
  • Identitet (Identity)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hur kommunicerar objekt med varandra?

A

Genom att skicka meddelanden, motsvarande metodanrop i Java.

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

Vad är syftet med objektorientering?

A
  • Förenkla stora system
  • Göra kod återanvändbar
  • Förbättra mjukvarukvaliteten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vad är en klass?

A

En mall för att skapa objekt.

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

Vad är en instans?

A

Ett objekt som skapats från en klass.

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

Vilka aspekter bör identifieras för att skriva OO-program?

A
  • Vilka objekt som finns
  • Vilka egenskaper de har
  • Hur de interagerar med varandra
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad är attribut i objektorientering?

A

Variabler som lagrar information i objekt.

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

Vad är operationer i objektorientering?

A

Handlingar som kan utföras av objektet.

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

Vad är skillnaden mellan instansvariabler och klassvariabler?

A
  • Instansvariabler: tillhör objekten, ofta private
  • Klassvariabler: tillhör klassen och delas mellan objekten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Vad är inkapsling?

A

Skyddar data från att förändras av misstag.

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

Vad visar ett klassdiagram?

A
  • Vilka klasser som finns
  • Vilka attribut och metoder de har
  • Hur klasserna är relaterade
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vad representerar ett objektdiagram?

A

Systemets objekt vid en viss tidpunkt under exekvering.

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

Vad visar ett sekvensdiagram?

A
  • Objekt och deras livstid
  • Ordningen på meddelanden mellan objekt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Vad används sekvensdiagram till?

A
  • Identifiera hur kod ska implementeras
  • Modellera lösningar
  • Skapa stöd för att skriva bättre kod
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vad innebär ett statiskt diagram?

A

Visar struktur och organisation av ett system.

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

Vad innebär ett dynamiskt diagram?

A

Visar processer och händelser under körning.

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

Vad är en metodsignatur?

A

Består av åtkomstmodifierare, returtyp, namn och parameterlista.

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

Vad är skillnaden mellan parametrar och argument?

A
  • Parametrar: anges i metodens signatur
  • Argument: värden skickas vid metodanrop
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Vad är en konstruktor?

A

Skapar nya objekt av en klass och har samma namn som klassen.

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

Vad innebär överlagring av konstruktorer?

A

Att ha flera konstruktorer med olika parametrar.

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

Hur skapar man ett objekt av en klass?

A

Använder nyckelordet ‘new’ tillsammans med konstruktorn.

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

Vad är syftet med en driver-klass?

A

Att starta programmet och köra koden.

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

Vad är ett beroende mellan klasser?

A

En klass A är beroende av en klass B om A skapar en instans av B eller anropar en metod i B.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Vad är ett beroende mellan klasser?
En klass A är beroende av en klass B om A skapar en instans av B, anropar en metod i B, har en instansvariabel som refererar till B, eller tar emot en instans av B som parameter.
26
Vad beskriver associationer mellan klasser?
Associationer visar relationer mellan klasser och beskrivs ofta med verb, kallas 'länkar'.
27
Vad innebär multiplicitet i associationer?
Multiplicitet beskriver hur många instanser av en klass som är kopplade till en annan, med exempel på exakta antal, intervall, obestämt antal, och kombinationer.
28
Ge exempel på multiplicitet.
Ett objekt av klassen Polygon har minst tre Point-objekt. En Line har exakt två Point-objekt.
29
Vad är en riktad association?
En riktad association innebär att bara ena klassen känner till den andra, vilket påverkar hur meddelanden kan skickas.
30
Vad är en use-relation?
En use-relation beskriver ett riktat beroende mellan klasser där den beroende klassen använder en annan klass utan att spara en referens.
31
Vad är aggregation?
Aggregation är en sammansättning där delar kan existera självständigt.
32
Vad är komposition?
Komposition är en starkare form av aggregation där om helheten raderas, raderas även delarna.
33
Hur avgör man mellan aggregation och komposition?
Om delarna kan existera självständigt är det aggregation, annars är det komposition.
34
Vad beskriver attribut i en klass?
Attribut beskriver vilken data som lagras i ett objekt.
35
Vad är operationer i en klass?
Operationer beskriver vad objekt kan göra och kan ha parametrar samt returnera värden.
36
Vad är synlighetsmodifierare i Java?
Modifierare som anger tillgång till attribut och metoder: private, public, protected.
37
Vad är en klassmetod?
En klassmetod är en statisk metod som kan anropas utan att skapa ett objekt.
38
Vad är en konstruktor?
En konstruktor är en speciell metod som används för att skapa instanser av en klass.
39
Vad gör metoden toString()?
Skapar en läsbar textrepresentation av ett objekt.
40
Vad är en konstant i Java?
En konstant skapas med 'final' och kan inte ändras.
41
Vad är ett enum?
Ett enum är en uppräknande typ med fördefinierade värden.
42
Vad är MVC?
MVC (Model-View-Controller) är en struktur för att organisera kod i tre delar för att göra programmet mer lättförståeligt.
43
Vad hanterar Model i MVC?
Model hanterar data och regler för hur data ska sparas och ändras.
44
Vad ansvarar View för i MVC?
View ansvarar för hur information presenteras för användaren.
45
Vad gör Controller i MVC?
Controller bestämmer vad som ska hända när en användare interagerar med systemet.
46
Vad är generalisering?
Generalisering samlar gemensamma egenskaper från flera klasser i en mer generell klass (superklass).
47
Vad är specialisering?
Specialisering skapar mer specifika klasser (subklasser) som ärver egenskaper från en superklass.
48
Vad är arv i programmering?
Arv är när en subklass ärver egenskaper och beteenden från en superklass.
49
Vad är en 'är-relation' i arv?
Det innebär att det finns en relation där en subklass är en typ av superklass.
50
Vad är ett interface?
Ett interface är ett skelett till en klass där alla metoder är abstrakta och det kan finnas konstanter.
51
Vad är en abstrakt klass?
Det är som en slags mall för hur andra klasser ska vara uppbyggda. Abstrakta klasser kan inte instansieras eller skapas som ett objekt. De kan innehålla metoder, med eller utan kod, variabler, konstruktorer och statiska metoder. Allt som den abstrakta klassen innehåller måste "subklasserna" implementera.
52
Vad är arv i programmering?
Återanvändning av kod och undvikande av duplicering genom att ärva attribut och metoder från en superklass.
53
Vad innebär en 'är-en'-relation i arv?
'Är-en'-relation innebär att det finns en logisk relation mellan klasser, t.ex. 'En bil är ett fordon'.
54
Tillåter Java multipelt arv med klasser?
Nej, en klass kan bara ärva från en annan klass.
55
Hur anropar man en superklassens konstruktor i en subklass?
Med super(...) på första raden i subklassens konstruktor.
56
Vad används 'this' och 'super' för?
'this' refererar till det egna objektet; 'super' refererar till superklassens metoder/variabler.
57
Vad är syftet med klasshierarkier?
Att strukturera programlogiken genom att ha generella klasser högre upp och specialiseringar längre ner.
58
Vad är Object i Java?
Den mest generella klassen som alla klasser i Java ärver direkt eller indirekt ifrån.
59
Vad är skillnaden mellan overriding och overloading?
* Overloading: Samma metodnamn, olika parametrar inom samma klass. * Overriding: Subklass skriver om en metod med samma signatur som i superklassen.
60
Vad är instansmedlemmar och statiska medlemmar?
* Instansmedlemmar: Specifika för ett objekt. * Statiska medlemmar: Tillhör klassen och nås med klassnamnet.
61
Vad är dynamisk bindning?
Bestäms vid körning och avgör vilken metod som körs baserat på objektets verkliga klass.
62
Vad är typomvandling (casting)?
Att konvertera en referens av en superklass till en subklass för att få tillgång till subklassens metoder.
63
Vad innebär hiding i objektorienterad programmering?
När en subklass deklarerar ett attribut eller en statisk metod med samma namn som i superklassen, döljs den tidigare versionen.
64
Vad är en abstrakt metod?
En metod utan implementation som deklareras med 'abstract'-nyckelordet.
65
Vad är ett interface?
Ett kontrakt som beskriver vilka metoder en klass ska ha, men inte hur de fungerar.
66
Kan en klass implementera flera interfaces?
Ja, en klass kan implementera flera interfaces.
67
Vad är skillnaden mellan en klass, en abstrakt klass och ett interface?
* Klass: Kan instansieras och ha konstruktorer * Abstrakt klass: Kan inte instansieras, kan ha abstrakta metoder * Interface: Kan inte instansieras, alla metoder är abstrakta.
68
Vad innebär final i Java?
Används för att förhindra ändringar av klasser, metoder eller attribut.
69
Vad är virtuella metoder i Java?
Instansmetoder som kan överskridas (override) om de är synliga.
70
Vad är skillnaden i instansiering mellan en abstrakt klass och ett interface?
En abstrakt klass kan instansieras, medan ett interface kan inte instansieras.
71
Kan en abstrakt klass ha en konstruktor?
Ja, en abstrakt klass kan ha en konstruktor, men ett interface kan inte.
72
Kan en abstrakt klass ha attribut (instansvariabler)?
Ja, en abstrakt klass kan ha attribut, men ett interface kan inte.
73
Kan en abstrakt klass ha metodimplementationer?
Ja, en abstrakt klass kan ha metodimplementationer, men ett interface kan inte.
74
Kan en abstrakt klass ha abstrakta metoder?
Nej, en abstrakt klass kan inte ha abstrakta metoder, men ett interface kan ha abstrakta metoder (alla metoder är 'abstrakta').
75
Hur ärvs en abstrakt klass och ett interface?
En abstrakt klass ärvs med 'extends', medan ett interface ärvs med 'implements'.
76
Kan en klass ha flera föräldrar?
Nej, både en abstrakt klass och ett interface kan inte ha flera föräldrar, men ett interface kan.
77
När ska man använda en abstrakt klass?
Använd en abstrakt klass när: * Du bygger en klasshierarki (t.ex. Vehicle, Car, Bike). * Du vill dela på både metoder och attribut. * Vissa metoder kan delas, andra måste implementeras av subklasser.
78
När ska man använda ett interface?
Använd ett interface när: * Du vill skapa ett beteendekontrakt (t.ex. Runnable, Comparable). * Du har klasser som saknar gemensam förälder men ändå delar ett gemensamt beteende. * Du inte behöver dela på tillstånd (attribut).
79
Vad är ett undantag (Exception)?
Ett undantag är en händelse som inträffar under körning och som stör det normala flödet i programmet.
80
Hur kan undantag uppstå?
Undantag kan uppstå genom: * Programmerarfel (t.ex. dela med noll). * Problem i bibliotek du använder. * Medvetet kastade undantag (throw) när något går fel.
81
Vad är en try/catch-konstruktion?
En try/catch-konstruktion används för att hantera undantag i Java.
82
Vad händer om ett undantag inte fångas?
Om ett undantag inte fångas avslutas programmet abrupt.
83
Vad är checked exceptions?
Checked exceptions är förväntade fel (t.ex. IOException) som måste hanteras.
84
Vad är skillnaden mellan Errors, RuntimeExceptions och Checked Exceptions?
Errors är allvarliga problem i JVM och ska inte fångas. RuntimeExceptions är unchecked exceptions och behöver inte deklareras med throws. Checked Exceptions är förväntade fel och kräver throws eller try/catch.
85
Fill in the blank: En _______ är en händelse som inträffar under körning och stör det normala flödet i programmet.
Exception
86
True or False: Ett interface kan ha attribut.
False
87
Vad är syftet med try-with-resources?
Try-with-resources används för att automatiskt stänga resurser som filer/sockets, även om ett undantag kastas.
88
Vad betyder det att låta undantag 'bubbla upp'?
Det innebär att om du inte kan hantera ett undantag där du är, ska du lägga till 'throws' så att en annan metod kan ta hand om det.
89
Vad används för att läsa och skriva textfiler i Java?
while-loop ## Footnote Vi läser/skriv sekventiellt och vet inte när filen slutar.
90
Vad är Try-With-Resources i Java?
En konstruktion som säkerställer att filen stängs även om fel inträffar ## Footnote Klassen som används måste implementera AutoCloseable.
91
Ge exempel på byte-baserade läsare och skrivare i Java.
FileInputStream, FileOutputStream ## Footnote Dessa används för att läsa och skriva bytes.
92
Ge exempel på tecken-baserade läsare och skrivare i Java.
FileReader, FileWriter ## Footnote Dessa används för att läsa och skriva tecken.
93
Vad gör BufferedReader i Java?
Läser text från en teckenström med buffring ## Footnote Det förbättrar läshastigheten genom att lagra data temporärt.
94
Vad händer om du försöker skriva till en fil som redan finns i Java?
Den överskriver befintlig fil utan varning ## Footnote Det är viktigt att vara försiktig med skrivoperationer.
95
Kan flera program läsa en fil samtidigt?
Ja ## Footnote Det är möjligt men en fil kan inte vara öppen för både läsning och skrivning samtidigt.
96
Vad är det som indikerar slutet av en fil när man läser i Java?
null eller -1 ## Footnote Dessa värden används för att indikera att filslutet har nåtts.
97
Vad innebär att det inte finns något papperskorssystem i filhantering?
Radering är permanent ## Footnote När en fil raderas, går den inte att återfå.
98
Vad innebär polymorfism?
Polymorfism betyder att samma metod kan ha olika implementationer beroende på vilken subklass som används.