Skillnad mellan versioner av "Accessmetoder och Property"

Från Mathonline
Hoppa till: navigering, sök
(Skapade sidan med '__NOTOC__ {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | style="border-bottom:1px solid #797979" width="5px" |   {{Not selected tab|Lektion 22...')
 
m
 
(25 mellanliggande versioner av samma användare visas inte)
Rad 9: Rad 9:
  
  
= <b><span style="color:#931136">Vad är objektorienterad programmering?</span></b> =
+
= <b><span style="color:#931136">Inkapslingens konsekvenser</span></b> =
 
<div class="ovnE">
 
<div class="ovnE">
==== <b><span style="color:#931136">Utdrag ur kursboken, sid 66:</span></b> ====
+
<big>
 +
Inkapsling innebär att ha <b><span style="color:red">privata datamedlemmar</span></b>.
  
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: OOP Modell av verkligh.jpg]]</div>
+
[[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?
  
==== <b><span style="color:#931136">Utdrag ur kursboken, sid 71:</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:
  
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: OOP Tre hornstenar.jpg]]</div>
+
# Get-metoder
 +
# Set-metoder
 +
# Strängrepresentationsmetoder
 +
</big>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Vad är inkapsling?</span></b> =
+
= <b><span style="color:#931136">Klassen Empl</span></b> =
 
<div class="ovnC">
 
<div class="ovnC">
 +
[[Image: Empl.jpg]]
 +
</div>
  
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Inkapslinga.jpg]]</div>
 
  
<big><b><span style="color:red">Problem:</span></b>
+
= <b><span style="color:#931136">Programmet GetSet</span></b> =
 +
<div class="ovnC">
 +
[[Image: GetSet.jpg]]
 +
</div>
  
Hur ska privata datamedlemmar initieras när de är private, dvs oåtkomliga?
 
  
<b><span style="color:red">Lösningen:</span></b>
+
= <b><span style="color:#931136">Ett körexempel</span></b> =
 
+
<div class="ovnC">
Man använder publika metoder för att via dem komma åt klassens privata datamedlemmar.
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: GetSetKorex.jpg]]</div>
 
+
En av dessa metoder är <b>klassens konstruktor</b>.
+
+
</big>
+
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Vad är en konstruktor?</span></b> =
+
= <b><span style="color:#931136">Vad är Property?</span></b> =
 
<div class="border-divblue">
 
<div class="border-divblue">
 
<big>
 
<big>
<b>Konstruktorn</b> är en publik metod vars uppgift är att initiera klassens privata datamedlemmar.
+
<b>Property</b> är en hybrid mellan datamedlem och metod som alltid är publik.
  
Konstruktorn finns by default i alla klasser, men kan även skrivas i klassen. Se exemplet nedan.
+
Property automatiserar Get- och Set-metoder i klasser med privata datamedlemmar.
  
Se [[2.7_Klassens_konstruktor#Konstruktorn_har_tre_egenskaper:|<b><span style="color:#931136">Konstruktorns egenskaper</span></b>]].
+
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">Exempel: Klassen Circle</span></b> =
+
= <b><span style="color:#931136">Klassen EmplP</span></b> =
<div class="ovnE">
+
<div class="ovnA">
[[Image: CircleKonstr.jpg]]
+
[[Image: EmplP.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Programmet Encapsulation</span></b> =
+
= <b><span style="color:#931136">Programmet Property</span></b> =
<div class="ovnC">
+
[[Image: Encapsulation.jpg]]
+
 
+
 
+
<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> =
+
 
<div class="ovnA">
 
<div class="ovnA">
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: CircleKorexa.jpg]]</div>
+
[[Image: Property.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Konstruktorn har tre egenskaper:</span></b> =
+
= <b><span style="color:#931136">Körexempel: samma som ovan.</span></b> =
<div class="ovnE">
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: KonstrEgenskapera.jpg]]</div>
+
</div>
+
  
 +
<br>
  
= <b><span style="color:#931136">Läs om Klassens konstruktor i kursboken på sid 95-100.</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.