Skansholm, kapitel 2:
Räknare
, enligt uppgift 1 i kursboken.Räknare
och använder den.Kort
, enligt uppgift 3 i kursboken.
Försök att hitta något sätt att provköra klassen.Koden för fordonsexemplet kommer bitvis, i löpande text. Försök sätta ihop koden så att den kan kompileras och provköras.
Om klassen Person
har en subklass Student
, kan en student vara
cyklist?
Om du är osäker, lägg till en klass Student
i fordonsexemplet och
försök skapa en cykel som cyklas av en student. Klassen Student
ska
förstås ärva av klassen Person
.
I klassen Person
finns ett brott mot objektorienterade principer när
det gäller hantering av ålder. Hur? Hur borde man göra istället?
Ge ett exempel på en situation där den dynamiska och den statiska typen hos ett objekt skiljer sig.
A
som ärver en klass B
och en metod som definieras i
klassen A
, vad händer om vi flyttar metoden till klassen B
?A
som ärver en klass B
och en metod som definieras i
klassen B
, vad händer om vi flyttar metoden till klassen A
?Nå, mycket kan hända om vi flyttar metoden. Ibland kompilerar inte programmet eller ger fel vid körning. Mer intressant är ju situationer när programmet fortfarande kan kompileras och köras men (kanske) ger ett annat resultat.
Ge gärna exempel!
Jag nämner i anteckningarna att det ibland finns situationer när det är lämpligt att introducera en ny klass som är superklass till befintliga klasser. Kan du tänka dig någon sådan situation? (Det finns flera exempel i boken och i anteckningarna.)
Anta att vi har två klasser A
och B
där A
är en superklass till
B
. Båda klasserna definierar konstruktorer.
Kan subklassens konstruktor anropa superklassens konstruktor?
Finns det några begränsningar i hur de två konstruktorerna kan se ut?
Ge gärna exempel!
Nedanstående frågor bör vara enkla att besvara om du läst anteckningarna.
Hur använder man en variabel som deklarerats så här:
GeometricShape s;där
GeometricShape
är en abstrakt klass.
Implementera fordonsexemplet med abstrakta klasser. Se till att
definiera en lämplig main
-metod så att du kan proköra.