Skillnad mellan versioner av "Kap 8 Klasser"

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 13: Rad 13:
 
|}
 
|}
  
 
+
<br>
 
+
 
+
  
 
= <b><span style="color:#931136">8.1 &nbsp; Vad är objektorienterad programmering?</span></b> =
 
= <b><span style="color:#931136">8.1 &nbsp; Vad är objektorienterad programmering?</span></b> =
Rad 24: Rad 22:
 
</big></big>
 
</big></big>
 
</div>
 
</div>
 +
 +
 +
= <b><span style="color:#931136">8.2 &nbsp; 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):
\( \qquad\;\;\, \)\( \qquad\;\;\, \)


8.2   Vägen till OOP

Utan modularisering: all kod i Main()

All in Main.jpg


Modularisering på metodnivå

Modulariseringens 1:a steg: Logiken flyttas till en ny metod Ok() utanför Main().

Method Module.jpg


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

Password.jpg


Klasserna Password och PasswordUse utgör ETT objektorienterat program.

Klassen PasswordUse

PasswordUse.jpg


Ett körexempel

PasswordUseKorexa.jpg










Copyright © 2023. All Rights Reserved.