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

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 37: Rad 37:
 
</div>
 
</div>
  
 +
 +
 +
= <b><span style="color:#931136">Vad är objektorienterad programmering?</span></b> =
 +
<div class="ovnE">
 +
==== <b><span style="color:#931136">Utdrag ur kursboken, sid 70:</span></b> ====
 +
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: OOP Modell av verkligh.jpg]]</div>
 +
 +
 +
==== <b><span style="color:#931136">Utdrag ur kursboken, sid 75:</span></b> ====
 +
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: OOP Tre hornstenar.jpg]]</div>
 +
</div>
 +
 +
 +
= <b><span style="color:#931136">Vad är inkapsling?</span></b> =
 +
<div class="ovnC">
 +
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Inkapslinga.jpg]]</div>
 +
 +
<big><b><span style="color:red">Problem:</span></b>
 +
 +
Hur ska privata datamedlemmar <b><span style="color:red">initieras</span></b> när de är oåtkomliga?
 +
 +
<b><span style="color:red">Lösningen:</span></b>
 +
 +
Man använder publika metoder för att via dem komma åt klassens privata datamedlemmar.
 +
 +
En av dessa metoder är <b>klassens konstruktor</b>.
 +
 +
</big>
 +
</div>
 +
 +
 +
= <b><span style="color:#931136">Vad är en konstruktor?</span></b> =
 +
<div class="border-divblue">
 +
<big>
 +
<b>Konstruktorn</b> är en publik metod vars uppgift är att initiera klassens privata datamedlemmar.
 +
 +
Konstruktorn finns by default i alla klasser, men kan även skrivas i klassen. Se exemplet nedan.
 +
 +
Se [[2.7_Klassens_konstruktor#Konstruktorns_egenskaper:|<b><span style="color:#931136">Konstruktorns egenskaper</span></b>]].
 +
</big>
 +
</div>
 +
 +
 +
= <b><span style="color:#931136">Exempel: Klassen Circle</span></b> =
 +
<div class="ovnE">
 +
[[Image: CircleKonstr.jpg]]
 +
</div>
 +
 +
 +
= <b><span style="color:#931136">Programmet Encapsulation</span></b> =
 +
<div class="ovnC">
 +
[[Image: Encapsulation.jpg]]
 +
 +
 +
<big>Klassen Circle:s datamedlem <b><span style="color:red">radius</span></b> är oåtkomlig här pga åtkomstmodifieraren <b><span style="color:red">private</span></b>.
 +
 +
Men vi kan initiera den med <b><span style="color:red">input</span></b> via den publika metoden <b><span style="color:red">Circle()</span></b> dvs klassens konstruktor.
 +
</big>
 +
</div>
 +
 +
= <b><span style="color:#931136">Ett körexempel</span></b> =
 +
<div class="ovnA">
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: CircleKorexa.jpg]]</div>
 +
</div>
 +
 +
 +
= <b><span style="color:#931136">Konstruktorns egenskaper:</span></b> =
 +
<div class="border-divblue">
 +
<big><big>
 +
<b>Konstruktorn</b> är en publik metod vars uppgift är:
 +
 +
att initiera klassens privata datamedlemmar.
 +
</big></big>
 +
</div>
 +
 +
 +
= <b><span style="color:#931136">Hur skiljer man konstruktorn från andra metoder?</span></b> =
 +
 +
 +
<div class="ovnE">
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: KonstrEgenskapera.jpg]]</div>
 +
</div>
  
  

Versionen från 22 november 2022 kl. 08.35

        <<  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


Vad är objektorienterad programmering?

Utdrag ur kursboken, sid 70:


Utdrag ur kursboken, sid 75:


Vad är inkapsling?

Inkapslinga.jpg

Problem:

Hur ska privata datamedlemmar initieras när de är oåtkomliga?

Lösningen:

Man använder publika metoder för att via dem komma åt klassens privata datamedlemmar.

En av dessa metoder är klassens konstruktor.


Vad är en konstruktor?

Konstruktorn är en publik metod vars uppgift är att initiera klassens privata datamedlemmar.

Konstruktorn finns by default i alla klasser, men kan även skrivas i klassen. Se exemplet nedan.

Se Konstruktorns egenskaper.


Exempel: Klassen Circle


Programmet Encapsulation

Encapsulation.jpg


Klassen Circle:s datamedlem radius är oåtkomlig här pga åtkomstmodifieraren private.

Men vi kan initiera den med input via den publika metoden Circle() dvs klassens konstruktor.

Ett körexempel

CircleKorexa.jpg


Konstruktorns egenskaper:

Konstruktorn är en publik metod vars uppgift är:

att initiera klassens privata datamedlemmar.


Hur skiljer man konstruktorn från andra metoder?

KonstrEgenskapera.jpg










Copyright © 2022 TechPages AB. All Rights Reserved.