Skillnad mellan versioner av "Kap 8 Klasser (22)"
Taifun (Diskussion | bidrag) m |
Taifun (Diskussion | bidrag) m |
||
Rad 58: | Rad 58: | ||
− | = <b><span style="color:#931136">Exempel: Klassen Circle</span></b> = | + | = <b><span style="color:#931136">Exempel: Klassen Circle med konstruktor</span></b> = |
<div class="ovnE"> | <div class="ovnE"> | ||
[[Image: CircleConstr.jpg]] | [[Image: CircleConstr.jpg]] | ||
Rad 64: | Rad 64: | ||
− | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Programmet Encapsulation</span></b> = |
<div class="ovnC"> | <div class="ovnC"> | ||
− | + | [[Image: Encapsulation_cpp.jpg]] | |
− | [[Image: | + | |
− | <big>Klassen Circle:s datamedlem <b><span style="color:red"> | + | <big>Klassen Circle:s datamedlem <b><span style="color:red">radie</span></b> är oåtkomlig här p.g.a. å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"> | + | Men vi kan initiera den med <b><span style="color:red">input</span></b> via den publika metoden <b><span style="color:red">CircleConstr()</span></b> dvs klassens konstruktor. |
</big> | </big> | ||
=== <b><span style="color:#931136">Ett körexempel</span></b> === | === <b><span style="color:#931136">Ett körexempel</span></b> === | ||
− | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: | + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: EncapsKorex.jpg]]</div> |
</div> | </div> | ||
Versionen från 23 oktober 2023 kl. 21.48
Innehåll
Ons 25 okt, kl 9-12
<< Agenda | Genomgång 22 | Övningar 22 | Planering | Nästa lektion >> |
8.3 Inkapsling
Åtkomstmodifieraen private
1.5 Klassens konstruktor
Inkapsling och dess problematik
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 konstruktorn?
Konstruktorn är en speciell metod med tre egenskaper
vars uppgift är att initiera klassens privata datamedlemmar.
Konstruktorn finns by default i alla klasser, men man kan även
definiera den själv i klassen. Se exemplet nedan:
Exempel: Klassen Circle med konstruktor
Programmet Encapsulation
Klassen Circle:s datamedlem radie är oåtkomlig här p.g.a. åtkomstmodifieraren private.
Men vi kan initiera den med input via den publika metoden CircleConstr() dvs klassens konstruktor.
Ett körexempel
Konstruktorns tre egenskaper
Default konstruktorn
Alla klasser i C# har automatiskt en default konstruktor som
initierar klassens datamedlemmar till default värden.
Default konstruktorn sätts ur funktion endast om man definierar en egen konstruktor.
Gå vidare till: när du är klar med denna genomgång.
Copyright © 2023. All Rights Reserved.