Skillnad mellan versioner av "Kap 8 Klasser (24)"
Taifun (Diskussion | bidrag) (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...') |
Taifun (Diskussion | bidrag) m |
||
(25 mellanliggande versioner av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | |||
− | |||
− | |||
{| 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" | | | style="border-bottom:1px solid #797979" width="5px" | | ||
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 >> ]]}} | {{Not selected tab|[[Lektion 25 (C/Cpp 23)|Nästa lektion >> ]]}} | ||
| style="border-bottom:1px solid #797979" width="100%"| | | style="border-bottom:1px solid #797979" width="100%"| | ||
Rad 15: | Rad 12: | ||
<br> | <br> | ||
− | = <b><span style="color:#931136">Kap | + | = <b><span style="color:#931136">Kap 9 Klasser (forts.)</span></b> = |
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">9.5 Accessmetoder</span></b> = |
− | |||
<div class="ovnE"> | <div class="ovnE"> | ||
− | < | + | === <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> | ||
+ | # Get-metoder | ||
+ | # Set-metoder | ||
+ | # 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"> | + | = <b><span style="color:#931136">Get- och Set-metoder</span></b> = |
<div class="ovnC"> | <div class="ovnC"> | ||
− | < | + | === <b><span style="color:#931136">Klassen Emp</span></b> === |
+ | [[Image: EmpCpp.jpg]] | ||
</div> | </div> | ||
− | = <b><span style="color:#931136">Programmet | + | = <b><span style="color:#931136">Programmet Access</span></b> = |
<div class="ovnA"> | <div class="ovnA"> | ||
− | + | [[Image: Access.jpg]] | |
+ | </div> | ||
− | + | = <b><span style="color:#931136">9.6 Klass som egendefinierad datatyp</span></b> = | |
− | [[Image: | + | <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"> | + | = <b><span style="color:#931136">1. Deklaration av en klass</span></b> = |
− | <div class=" | + | <div class="ovnA"> |
− | === <b><span style="color:#931136">Programmet | + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Dekl_klass.jpg]]</div> |
− | [[Image: | + | |
+ | |||
+ | == <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:
- Get-metoder
- Set-metoder
- 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
Programmet Access
9.6 Klass som egendefinierad datatyp
1. Deklaration av en klass
2. Definition av ett objekt
Gå vidare till: när du är klar med denna genomgång.
Copyright © 2023. All Rights Reserved.