Skillnad mellan versioner av "Kap 8 Klasser (24)"

Från Mathonline
Hoppa till: navigering, sök
(Skapade sidan med '__NOTOC__ <big>Mån 30 okt, kl 13-16</big> {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | style="border-bottom:1px solid #797979" width="5px" | &nb...')
 
m
 
(25 mellanliggande versioner av samma användare visas inte)
Rad 1: Rad 1:
 
__NOTOC__
 
__NOTOC__
<big>Mån 30 okt, kl 13-16</big>
 
 
 
 
{| border="0" cellspacing="0" cellpadding="0" height="30" width="100%"
 
{| border="0" cellspacing="0" cellpadding="0" height="30" width="100%"
 
| style="border-bottom:1px solid #797979" width="5px" | &nbsp;
 
| style="border-bottom:1px solid #797979" width="5px" | &nbsp;
Rad 8: Rad 5:
 
{{Selected tab|[[Kap 8 Klasser (24)|Genomgång 24]]}}
 
{{Selected tab|[[Kap 8 Klasser (24)|Genomgång 24]]}}
 
{{Not selected tab|[[Övningar 24 (C/Cpp 23)|Övningar 24]]}}
 
{{Not selected tab|[[Övningar 24 (C/Cpp 23)|Övningar 24]]}}
{{Not selected tab|[http://mathonline.se/Planering_Progr_Cpp_ht_23.pdf Planering]}}
+
<!-- {{Not selected tab|[http://mathonline.se/Planering_Progr_Cpp_ht_23.pdf Planering]}} -->
 
{{Not selected tab|[[Lektion 25 (C/Cpp 23)|Nästa lektion&nbsp;&nbsp;>> ]]}}
 
{{Not selected tab|[[Lektion 25 (C/Cpp 23)|Nästa lektion&nbsp;&nbsp;>> ]]}}
 
| style="border-bottom:1px solid #797979"  width="100%"| &nbsp;
 
| style="border-bottom:1px solid #797979"  width="100%"| &nbsp;
Rad 15: Rad 12:
 
<br>
 
<br>
  
= <b><span style="color:#931136">Kap 8 Klasser (forts.)</span></b> =
+
= <b><span style="color:#931136">Kap 9 Klasser (forts.)</span></b> =
  
= <b><span style="color:#931136">8.4 &nbsp; Konstruktor (forts.)</span></b> =
+
= <b><span style="color:#931136">9.5 &nbsp; Accessmetoder</span></b> =
  
= <b><span style="color:#931136">Flera konstruktorer</span></b> =
 
 
<div class="ovnE">
 
<div class="ovnE">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Flera_konstr.jpg]]</div>
+
=== <b><span style="color:#931136">Inkapslingens konsekvenser</span></b> ===
 +
<big>
 +
Inkapsling innebär inkluderingen av <b><span style="color:red">privata datamedlemmar</span></b> i sitt program.
 +
 
 +
[[2.7_Klassens_konstruktor|<b><span style="color:blue">Konstruktorn</span></b>]] löser problemet med <b><span style="color:red">initieringen</span></b> av privata datamedlemmar. Men:
 +
----
 +
<b><span style="color:red">Problem</span></b> som kvarstår:
 +
 
 +
Hur ska privata datamedlemmar <b><span style="color:red">ändras</span></b> efter initieringen när de är oåtkomliga?
 +
 
 +
Hur ska de <b><span style="color:red">läsas</span></b>, hur ska de <b><span style="color:red">skrivas</span></b> efter initieringen?
 +
----
 +
<b><span style="color:red">Lösningen</span></b> är publika <b><span style="color:red">accessmetoder</span></b>. Det finns tre sorters accessmetoder:
 +
<b>
 +
# &nbsp; &nbsp; Get-metoder
 +
# &nbsp; &nbsp; Set-metoder
 +
# &nbsp; &nbsp; Strängrepresentationsmetoder
 +
</b>
 +
En <b>Get-metod</b> hämtar (läser) värdet av en privat datamedlem.
 +
 
 +
En <b>Set-metod</b> ändrar (skriver) värdet av en privat datamedlem.
 +
 
 +
En <b>Strängrepresentationsmetod</b> ger strängrepresentationen av ett objekt,
 +
 
 +
dvs en förteckning över objektets alla medlemmar samt deras värden.
 +
 
 +
En utskriftsmetod är en speciell (kort) form av strängrepresentation.
 +
</big>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Klassen Circles</span></b> =
+
= <b><span style="color:#931136">Get- och Set-metoder</span></b> =
 
<div class="ovnC">
 
<div class="ovnC">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Circles_h.jpg]]</div>
+
=== <b><span style="color:#931136">Klassen Emp</span></b> ===
 +
[[Image: EmpCpp.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Programmet MoreConstr</span></b> =
+
= <b><span style="color:#931136">Programmet Access</span></b> =
 
<div class="ovnA">
 
<div class="ovnA">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: MoreConstr.jpg]]</div>
+
[[Image: Access.jpg]]
 +
</div>
  
  
=== <b><span style="color:#931136">Körresultat</span></b> ===
+
= <b><span style="color:#931136">9.6 &nbsp; Klass som egendefinierad datatyp</span></b> =
[[Image: MoreConstr_Korexa.jpg]]
+
<div class="ovnE">
 +
 
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Anv_Klasser.jpg]]</div>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Objektorienterad initiering</span></b> =
+
= <b><span style="color:#931136">1. Deklaration av en klass</span></b> =
<div class="ovnE">
+
<div class="ovnA">
=== <b><span style="color:#931136">Programmet ObjInit</span></b> ===
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Dekl_klass.jpg]]</div>
[[Image: ObjInit.jpg]]
+
 
 +
 
 +
== <b><span style="color:#931136">Klassen Anstalld</span></b> ==
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Anstalld.jpg]]</div>
 +
 
 +
 
 +
== <b><span style="color:#931136">Metoden lon()</span></b> ==
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Emp_Lon.jpg]]</div>
 +
</div>
 +
 
 +
 
 +
= <b><span style="color:#931136">2. Definition av ett objekt</span></b> =
 +
<div class="ovnA">
 +
=== <b><span style="color:#931136">Programmet EmployeeTest</span></b> ===
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Employee_Test.jpg]]</div>
 +
 
 +
 
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Gen_Var_Obj.jpg]]</div>
 +
 
 +
 
 +
=== <b><span style="color:#931136">Körexempel</span></b> ===
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Emp_Test_Korres.jpg]]</div>
 +
 
 +
 
 +
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Data_sizeof.jpg]]</div>
 
</div>
 
</div>
  

Nuvarande version från 16 mars 2025 kl. 12.33

        <<  Agenda          Genomgång 24          Övningar 24          Nästa lektion  >>      


Kap 9 Klasser (forts.)

9.5   Accessmetoder

Inkapslingens konsekvenser

Inkapsling innebär inkluderingen av privata datamedlemmar i sitt program.

Konstruktorn löser problemet med initieringen av privata datamedlemmar. Men:


Problem som kvarstår:

Hur ska privata datamedlemmar ändras efter initieringen när de är oåtkomliga?

Hur ska de läsas, hur ska de skrivas efter initieringen?


Lösningen är publika accessmetoder. Det finns tre sorters accessmetoder:

  1.     Get-metoder
  2.     Set-metoder
  3.     Strängrepresentationsmetoder

En Get-metod hämtar (läser) värdet av en privat datamedlem.

En Set-metod ändrar (skriver) värdet av en privat datamedlem.

En Strängrepresentationsmetod ger strängrepresentationen av ett objekt,

dvs en förteckning över objektets alla medlemmar samt deras värden.

En utskriftsmetod är en speciell (kort) form av strängrepresentation.


Get- och Set-metoder

Klassen Emp

EmpCpp.jpg


Programmet Access

Access.jpg


9.6   Klass som egendefinierad datatyp

Anv Klasser.jpg


1. Deklaration av en klass

Dekl klass.jpg


Klassen Anstalld

Anstalld.jpg


Metoden lon()

Emp Lon.jpg


2. Definition av ett objekt

Programmet EmployeeTest

Employee Test.jpg


Gen Var Obj.jpg


Körexempel

Emp Test Korres.jpg


Data sizeof.jpg



Gå vidare till:        när du är klar med denna genomgång.











Copyright © 2023. All Rights Reserved.