Skillnad mellan versioner av "Kap 1 Objektorienterad programmering (forts.)"

Från Mathonline
Hoppa till: navigering, sök
(Skapade sidan med '__NOTOC__ {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | style="border-bottom:1px solid #797979" width="5px" |   {{Not selected tab|Lektion 2...')
 
m
Rad 11: Rad 11:
  
 
<br>
 
<br>
 
= <b><span style="color:#931136">1.1 &nbsp; Vad är objektorienterad programmering?</span></b> =
 
<div class="ovnE">
 
<big><big>
 
:Gå igenom texten (PDF 7 sidor)<span>:</span>
 
<math> \qquad\;\;\, </math><div class="smallBox">[[Media: Vad_OOP.pdf|<b><span style="color:blue">Vad är objektorienterad programmering?</span></b>]]</div><math> \qquad\;\;\, </math>
 
</big></big>
 
</div>
 
  
  
= <b><span style="color:#931136">1.2 &nbsp; Klassbegreppet</span></b> =
+
= <b><span style="color:#931136">En annan definition på klass</span></b> =
 
<div class="ovnC">
 
<div class="ovnC">
=== <b><span style="color:#931136">En klass som ett C# program</span></b> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Firsta.jpg]]</div>
 
  
 
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Anv_Klasser.jpg]]</div>
<big><big>Varför står metoden <b><span style="color:red">Main()</span></b> i en <b><span style="color:red">klass</span></b>, nämligen <b><span style="color:blue">class First</span></b> &nbsp;?
+
 
+
Eftersom koden ska vara ett <b><span style="color:red">C# program</span></b>, nämligen:
+
 
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: CsPrograma.jpg]]</div>
+
 
+
Koden ovan (<b><span style="color:blue">class First</span></b>) är det det enklast tänkbara <b><span style="color:red">C# programmet</span></b>.
+
 
+
Metoden <b><span style="color:red">Main()</span></b> kan inte skrivas utanför klassen.
+
</big></big>
+
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Definition 1 av klass</span></b> =
+
= <b><span style="color:#931136">Klassen Emp</span></b> =
 
<div class="ovnE">
 
<div class="ovnE">
 
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Emp.jpg]]</div>
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: VadKlass.jpg]]</div>
+
 
+
 
+
<big><big><b><span style="color:red">Generell</span></b> är en klass därför att den beskriver en <b>kategori</b> av saker och ting:
+
 
+
* &nbsp; &nbsp; ett <b>begrepp</b>
+
 
+
* &nbsp; &nbsp; en <b>idé</b>
+
 
+
* &nbsp; &nbsp; en <b>mall</b>.
+
 
+
Enligt klassens mall kan sedan <b>objekt</b> av denna klass skapas. Medan klassen
+
 
+
är abstrakt, är objekten verkliga eller virtuella saker och ting i den reala världen.
+
 
+
<b><span style="color:red">Modulär</span></b> är en klass därför att den kodas som en separat och namngiven modul
+
 
+
så att den kan användas av vilka andra program som helst. Liksom en Legobit
+
 
+
för att kunna konstruera andra program. Principen heter <b>modularisering</b>.
+
 
+
<b><span style="color:red">Klass och objekt är två olika begrepp.</span></b>
+
 
+
<b>Exempel:</b>
+
 
+
Pepparkakor är <b><span style="color:red">objekt.</span></b>
+
 
+
Pepparkaksformen är <b><span style="color:red">klassen.</span></b>
+
</big></big>
+
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Definition 2 av klass</span></b> =
+
= <b><span style="color:#931136">Programmet EmpTest</span></b> =
<div class="ovnA">
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Def_2_klass.jpg]]</div>
+
 
+
 
+
<big><big>Ett begrepp kan ha olika definitioner om de inte motsäger varandra och belyser olika
+
 
+
aspekter av begreppet. Sammanhanget i vilket begreppet används avgör betydelsen.</big></big>
+
</div>
+
 
+
 
+
= <b><span style="color:#931136">1.3 &nbsp; Modulariseringsprocessen</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">
 
<div class="ovnC">
<big><big>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Emp_Test.jpg]]</div>
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>
 
</div>
  
  
= <b><span style="color:#931136">Modularisering på klassnivå</span></b> =
+
= <b><span style="color:#931136">Ett körexempel</span></b> =
 
<div class="ovnA">
 
<div class="ovnA">
<big><big>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: EmpTestKorex.jpg]]</div>
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>
 
</div>
  

Versionen från 22 november 2022 kl. 08.34

        <<  Agenda          Innehåll & struktur          Genomgång          Dagens övningar          Nästa lektion  >>      



En annan definition på klass

Anv Klasser.jpg


Klassen Emp

Emp.jpg


Programmet EmpTest

Emp Test.jpg


Ett körexempel

EmpTestKorex.jpg










Copyright © 2022 TechPages AB. All Rights Reserved.