Skillnad mellan versioner av "Objektorienterad modellering och implementation"

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 102: Rad 102:
  
  
= <b><span style="color:#931136">Läs om Referensvariabler på sid 88-91 och om Array av referenser på sid 113-116.</span></b> =
+
= <b><span style="color:#931136">Läs om Objektorienterad modellering och implementation på sid 117-124 =
  
  

Versionen från 1 februari 2021 kl. 18.07

       Lektion 21          Genomgång          Övningar      


Projekt Lönespecifikation

Utdrag ur kursboken, sid 117:

Proj Lonespecifikation.jpg


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:

Klassdiagram.jpg

Minustecknen står framför datamedlemmarna och plustecknen står framför metoderna.

I de högre kolumnerna 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.

Logiskt primär är modellen (arkitekturen). Den är dessutom oberoende av programmeringsspråket.

Omvandlingen av modell till kod kallas implementation: Modellen "planteras", koden växer ur den.


Implementation av modellen

Klassen Time

Time.jpg

Klassen Emplo

Emplo.jpg

För enkelhetens skull deklareras klassens alla datamedlemmar som public. Därför definieras inte heller någon konstruktor. I en skarp version borde de vara private med alla konsekvenser.


Programmet EmploTest

Fil:EmploTest.jpg

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

ArrayOfRefKorex.jpg


Läs om Objektorienterad modellering och implementation på sid 117-124


 










Copyright © 2021 <b>TechPages AB</b>. All Rights Reserved.