Skillnad mellan versioner av "Objektorienterad modellering och implementation"

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 77: Rad 77:
 
<div class="ovnC">
 
<div class="ovnC">
 
[[Image: EmploTest.jpg]]
 
[[Image: EmploTest.jpg]]
 
<big>
 
På <b><span style="color:green">rad 7</span></b> skapas en array av 5 referenser: <b>f[0], f[1], ... , f[4]</b> av koden <b><span style="color:red">new Fisk[5]</span></b>.
 
 
<b>f</b> är ingen array av Fisk-objekt utan en <b><span style="color:red">array av</span> referenser <span style="color:red">av typ Fisk</span></b>.
 
 
Fisk-objekten skapas på <b><span style="color:green">rad 10</span></b> i <b>for</b>-loopen av koden <b><span style="color:red">new Fisk()</span></b>. I samma sats tilldelas de till referenserna <b>f[i]</b>.
 
 
Varje referens <b>f[i]</b> pekar nu på ett Fisk-objekt: &nbsp; <b>i = 0, 1, ... , 4</b> &nbsp; eftersom <b>for</b>-loopen har <b>5</b> varv.
 
 
Tanken om att skapa en "array av objekt" måste förkastas. Lösningen är en <b>tvåstegsmetod</b>:
 
 
<b>Steg 1:</b> &nbsp; <b><span style="color:red">Skapa en array av referenser</span></b>.
 
 
<b>Steg 2:</b> &nbsp; <b><span style="color:red">Låta varje referens i arrayen peka på ett objekt</span></b>.
 
</big>
 
 
</div>
 
</div>
  

Versionen från 1 februari 2021 kl. 18.34

       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 klassernas datamedlemmar som public. Därför definieras inte heller någon konstruktor. I en skarp version borde de vara private.


Programmet EmploTest


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.