Skillnad mellan versioner av "Accessmetoder och Property"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(8 mellanliggande versioner av samma användare visas inte)
Rad 12: Rad 12:
 
<div class="ovnE">
 
<div class="ovnE">
 
<big>
 
<big>
Inkapsling innebär <b><span style="color:red">privata datamedlemmar</span></b>.
+
Inkapsling innebär att ha <b><span style="color:red">privata datamedlemmar</span></b>.
  
[[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.
+
[[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:
 
<b><span style="color:red">Problem</span></b> som kvarstår:
Rad 20: Rad 20:
 
Hur ska privata datamedlemmar <b><span style="color:red">ändras</span></b> efter initieringen när de är oåtkomliga?
 
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>?
+
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><span style="color:red">Lösningen</span></b> är publika <b><span style="color:red">accessmetoder</span></b>. Det finns tre sorters accessmetoder:
Rad 40: Rad 40:
 
<div class="ovnC">
 
<div class="ovnC">
 
[[Image: GetSet.jpg]]
 
[[Image: GetSet.jpg]]
 +
</div>
  
 
<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> =
 
= <b><span style="color:#931136">Ett körexempel</span></b> =
Rad 70: Rad 65:
 
[[Image: EmplP.jpg]]
 
[[Image: EmplP.jpg]]
 
</div>
 
</div>
 +
  
 
= <b><span style="color:#931136">Programmet Property</span></b> =
 
= <b><span style="color:#931136">Programmet Property</span></b> =
 
<div class="ovnA">
 
<div class="ovnA">
 
[[Image: Property.jpg]]
 
[[Image: Property.jpg]]
 +
</div>
  
  
<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>.  
+
= <b><span style="color:#931136">Körexempel: samma som ovan.</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>
+
 
+
  
 +
<br>
  
 
= <b><span style="color:#931136">Läs om accessmetoder och Property i kursboken på sid 132-136.</span></b> =
 
= <b><span style="color:#931136">Läs om accessmetoder och Property i kursboken på sid 132-136.</span></b> =

Nuvarande version från 23 februari 2021 kl. 00.18

       Lektion 22          Genomgång          Övningar      


Inkapslingens konsekvenser

Inkapsling innebär att ha privata datamedlemmar.

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


Klassen Empl

Empl.jpg


Programmet GetSet

GetSet.jpg


Ett körexempel

GetSetKorex.jpg


Vad är Property?

Property är en hybrid mellan datamedlem och metod som alltid är publik.

Property automatiserar Get- och Set-metoder i klasser med privata datamedlemmar.

Property är till för att utanför klassen kunna läsa värdet av och skriva ett nytt värde till en privat datamedlem.


Klassen EmplP

EmplP.jpg


Programmet Property

Property.jpg


Körexempel: samma som ovan.


Läs om accessmetoder och Property i kursboken på sid 132-136.


 










Copyright © 2021 TechPages AB. All Rights Reserved.