Skillnad mellan versioner av "Accessmetoder och Property"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(22 mellanliggande versioner av samma användare visas inte)
Rad 9: Rad 9:
  
  
= <b><span style="color:#931136">Inkapslingens ytterligare konsekvenser</span></b> =
+
= <b><span style="color:#931136">Inkapslingens konsekvenser</span></b> =
 
<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>
+
<b><span style="color:red">Lösningen</span></b> är publika <b><span style="color:red">accessmetoder</span></b>. Det finns tre sorters accessmetoder:
 
+
Man använder publika <b><span style="color:red">accessmetoder</span></b>. Det finns tre sorters accessmetoder:
+
  
 
# Get-metoder
 
# Get-metoder
Rad 33: Rad 31:
  
  
= <b><span style="color:#931136">Vad är en konstruktor?</span></b> =
+
= <b><span style="color:#931136">Klassen Empl</span></b> =
<div class="border-divblue">
+
<div class="ovnC">
<big>
+
[[Image: Empl.jpg]]
<b>Konstruktorn</b> är en publik metod vars uppgift är att initiera klassens privata datamedlemmar.
+
 
+
Konstruktorn finns by default i alla klasser, men kan även skrivas i klassen. Se exemplet nedan.
+
 
+
Se [[2.7_Klassens_konstruktor#Konstruktorn_har_tre_egenskaper:|<b><span style="color:#931136">Konstruktorns egenskaper</span></b>]].
+
</big>
+
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Exempel: Klassen Circle</span></b> =
+
= <b><span style="color:#931136">Programmet GetSet</span></b> =
<div class="ovnE">
+
<div class="ovnC">
[[Image: CircleKonstr.jpg]]
+
[[Image: GetSet.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Programmet Encapsulation</span></b> =
+
= <b><span style="color:#931136">Ett körexempel</span></b> =
 
<div class="ovnC">
 
<div class="ovnC">
[[Image: Encapsulation.jpg]]
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: GetSetKorex.jpg]]</div>
 +
</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">Vad är Property?</span></b> =
 +
<div class="border-divblue">
 +
<big>
 +
<b>Property</b> är en hybrid mellan datamedlem och metod som alltid är publik.
 +
 
 +
Property automatiserar Get- och Set-metoder i klasser med privata datamedlemmar.
  
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.
+
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.
 
</big>
 
</big>
 
</div>
 
</div>
  
= <b><span style="color:#931136">Ett körexempel</span></b> =
+
 
 +
= <b><span style="color:#931136">Klassen EmplP</span></b> =
 
<div class="ovnA">
 
<div class="ovnA">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: CircleKorexa.jpg]]</div>
+
[[Image: EmplP.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Konstruktorn har tre egenskaper:</span></b> =
+
= <b><span style="color:#931136">Programmet Property</span></b> =
<div class="ovnE">
+
<div class="ovnA">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: KonstrEgenskapera.jpg]]</div>
+
[[Image: Property.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Läs om Klassens konstruktor i kursboken på sid 95-100.</span></b> =
+
= <b><span style="color:#931136">Körexempel: samma som ovan.</span></b> =
 +
 
 +
<br>
 +
 
 +
= <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.