Skillnad mellan versioner av "Kap 8 Klasser"
Från Mathonline
Taifun (Diskussion | bidrag) m |
Taifun (Diskussion | bidrag) m |
||
Rad 13: | Rad 13: | ||
|} | |} | ||
− | + | <br> | |
− | + | ||
− | + | ||
= <b><span style="color:#931136">8.1 Vad är objektorienterad programmering?</span></b> = | = <b><span style="color:#931136">8.1 Vad är objektorienterad programmering?</span></b> = | ||
Rad 24: | Rad 22: | ||
</big></big> | </big></big> | ||
</div> | </div> | ||
+ | |||
+ | |||
+ | = <b><span style="color:#931136">8.2 Vägen till OOP</span></b> = | ||
+ | <div class="ovnE"> | ||
+ | === <b><span style="color:#931136">Utan modularisering: all kod i Main()</span></b> === | ||
+ | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: All_in_Main.jpg]]</div> | ||
+ | </div> | ||
+ | |||
+ | |||
+ | = <b><span style="color:#931136">Modularisering på metodnivå</span></b> = | ||
+ | <div class="ovnC"> | ||
+ | <big><big> | ||
+ | Modulariseringens <b>1:a steg: <span style="color:red">Logiken</span></b> flyttas till en <b><span style="color:red">ny metod Ok()</span></b> utanför Main(). | ||
+ | </big></big> | ||
+ | |||
+ | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Method_Module.jpg]]</div> | ||
+ | |||
+ | |||
+ | <big><big>Klassen <b>Method</b> har två metoder: <b>Main()</b> och <b>Ok()</b>: Main() anropar Ok(). Vid anrop: | ||
+ | |||
+ | skickas den aktuella parametern input till den formella parametern passwd och retur- | ||
+ | |||
+ | värdet av typ <b>bool</b> returneras via Ok() till Main() och används i if-satsens samt loopens villkor. | ||
+ | </big></big> | ||
+ | </div> | ||
+ | |||
+ | |||
+ | = <b><span style="color:#931136">Modularisering på klassnivå</span></b> = | ||
+ | <div class="ovnA"> | ||
+ | <big><big> | ||
+ | Modulariseringens <b>2:a steg:</b> Metoden Ok() flyttas till en annan klass = <b>ny datatyp</b>. | ||
+ | |||
+ | I Main() skapas ett <b><span style="color:red">objekt</span></b> av den nya datatypen Password och | ||
+ | |||
+ | <b><span style="color:red">objektets metod</span></b> Ok() anropas i Main(). | ||
+ | </big></big> | ||
+ | |||
+ | === <b><span style="color:#931136">Klassen Password</span></b> === | ||
+ | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Password.jpg]]</div> | ||
+ | |||
+ | |||
+ | <big><big> | ||
+ | Klasserna <b><span style="color:#931136">Password</span></b> och <b><span style="color:#931136">PasswordUse</span></b> utgör ETT <b><span style="color:red">objektorienterat</span></b> program. | ||
+ | </big></big> | ||
+ | |||
+ | === <b><span style="color:#931136">Klassen PasswordUse</span></b> === | ||
+ | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: PasswordUse.jpg]]</div> | ||
+ | |||
+ | |||
+ | === <b><span style="color:#931136">Ett körexempel</span></b> === | ||
+ | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: PasswordUseKorexa.jpg]]</div> | ||
+ | </div> | ||
+ | |||
Versionen från 21 oktober 2023 kl. 13.05
Tis 24 okt, kl 9-12
<< Agenda | Genomgång 21 | Övningar 21 | Planering | Nästa lektion >> |
8.1 Vad är objektorienterad programmering?
- Gå igenom texten (PDF 7 sidor):
8.2 Vägen till OOP
Modularisering på metodnivå
Modulariseringens 1:a steg: Logiken flyttas till en ny metod Ok() utanför Main().
Klassen Method har två metoder: Main() och Ok(): Main() anropar Ok(). Vid anrop:
skickas den aktuella parametern input till den formella parametern passwd och retur-
värdet av typ bool returneras via Ok() till Main() och används i if-satsens samt loopens villkor.
Modularisering på klassnivå
Modulariseringens 2:a steg: Metoden Ok() flyttas till en annan klass = ny datatyp.
I Main() skapas ett objekt av den nya datatypen Password och
objektets metod Ok() anropas i Main().
Klassen Password
Klasserna Password och PasswordUse utgör ETT objektorienterat program.
Klassen PasswordUse
Ett körexempel
Copyright © 2023. All Rights Reserved.