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

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 23: Rad 23:
 
= <b><span style="color:#931136">Åtkomstmodifieraen private</span></b> =
 
= <b><span style="color:#931136">Åtkomstmodifieraen private</span></b> =
 
<div class="ovnC">
 
<div class="ovnC">
 +
 
+++
 
+++
=== <b><span style="color:#931136">Programmet All_in_main() utan modularisering</span></b> ===
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: All_in_main.jpg]]</div>
 
 
 
<big><big>
 
Programmet är varken proceduralt eller objektorienterat.
 
  
Vi ska modularisera programmet på olika nivåer. Det gör i två steg:
 
</big></big>
 
 
</div>
 
</div>
  

Versionen från 23 oktober 2023 kl. 09.41

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

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 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 kan även skrivas i klassen. Se exemplet nedan.


Exempel: Klassen Circle


Åtkomstmodifieraren private

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

KonstrEgenskapera.jpg


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.











Copyright © 2023. All Rights Reserved.