Objektorienterad modellering och implementation
Lektion 21 | Genomgång | Övningar |
Projekt Lönespecifikation
Objektorienterad modellering i fyra steg
Steg 1 Förstå problemet: Läs kundens kravspecifikation (rutan ovan) om och om igen!
Steg 2 Identifiera problemets nyckelbegrepp:
- Saker som är relevanta för verksamheten, som man behöver lagra information om.
-
- Vid implementeringen kommer nyckelbegrepp att bli programmets klasser.
Steg 3 Identifiera datamedlemmar till varje klass: Vad består den av? Testa "Har"-relationen!
Steg 4 Identifiera metoder till varje klass: Vad gör den eller vad kan man göra med den?
- Vilka operationer är relevanta, karakteristiska eller typiska för den?
Klassdiagram
Resultat av modelleringen:
Minustecknen står framför datamedlemmarna och är symboler för private.
Plustecknen står framför metoderna och är symboler för public.
I den högre kolumnen står datamedlemmarnas datatyper resp. metodernas returtyper.
Regler enligt det objektorienterade modelleringsspråket Unified Modeling Language (UML).
Modellen måste vara objektorienterad för att programmet ska bli objektorienterat.
Omvandlingen av en modell till ett program kallas implementation.
Logiskt primär är modellen (arkitekturen). Den är dessutom oberoende av programmeringsspråket.
Implementation av modellen
Klassen Time
För enkelhetens skull deklareras klassens alla medlemmar som public. Därför definieras inte heller någon konstruktor.
Typkonverteringen till int behövs däför att returtypen till metoderna är int.
På rad 26 överskrids arrayens övre indexgräns, eftersom no[4] är arrayens 5:te element som är odefinierat.
Programmet ArrayOfRef
På rad 7 skapas en array av 5 referenser: f[0], f[1], ... , f[4] av koden new Fisk[5].
f är ingen array av Fisk-objekt utan en array av referenser av typ Fisk.
Fisk-objekten skapas på rad 10 i for-loopen av koden new Fisk(). I samma sats tilldelas de till referenserna f[i].
Varje referens f[i] pekar nu på ett Fisk-objekt: i = 0, 1, ... , 4 eftersom for-loopen har 5 varv.
Tanken om att skapa en "array av objekt" måste förkastas. Lösningen är en tvåstegsmetod:
Steg 1: Skapa en array av referenser.
Steg 2: Låta varje referens i arrayen peka på ett objekt.
Ett körexempel
Läs om Referensvariabler på sid 88-91 och om Array av referenser på sid 113-116.
Copyright © 2021 TechPages AB. All Rights Reserved.