Skillnad mellan versioner av "Statiska metoder & Referens i metoder"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(26 mellanliggande versioner av samma användare visas inte)
Rad 1: Rad 1:
__TOC__
+
__NOTOC__
 
{| border="0" cellspacing="0" cellpadding="0" height="30" width="100%"
 
{| border="0" cellspacing="0" cellpadding="0" height="30" width="100%"
 
| style="border-bottom:1px solid #797979" width="5px" |  
 
| style="border-bottom:1px solid #797979" width="5px" |  
Rad 10: Rad 10:
  
 
= <b><span style="color:#931136">Allokeringsmodifieraren static</span></b> =
 
= <b><span style="color:#931136">Allokeringsmodifieraren static</span></b> =
<div class="ovnE">
+
<div class="ovnC">
<big>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: static.jpg]]</div>
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. 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?
+
<big>Statiska datamedlemmar kallas för klassvariabler, därför att de tillhör klassen och inte något specifikt objekt.
  
Hur ska de <b><span style="color:red">läsas</span></b>, hur ska de <b><span style="color:red">skrivas</span></b>?
+
Icke-statiska datamedlemmar kallas för instansvariabler, därför att de tillhör objekten och inte klassen.  
----
+
<b><span style="color:red">Lösningen</span></b> är publika <b><span style="color:red">accessmetoder</span></b>. Det finns tre sorters accessmetoder:
+
 
+
# Get-metoder
+
# Set-metoder
+
# Strängrepresentationsmetoder
+
 
</big>
 
</big>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Klassen Empl</span></b> =
+
= <b><span style="color:#931136">Programmet RandTest</span></b> =
<div class="ovnC">
+
<div class="ovnE">
[[Image: Empl.jpg]]
+
[[Image: RandTest.jpg]]
</div>
+
  
  
= <b><span style="color:#931136">Programmet GetSet</span></b> =
+
<big><big>Metoden <b><span style="color:red">WriteLine()</span></b> är statisk, därför att den anropas med klassnamnet <b><span style="color:blue">Console</span></b>.
<div class="ovnC">
+
[[Image: GetSet.jpg]]
+
</div>
+
  
 +
<b><span style="color:blue">Console</span></b> är en statisk klass, därför att det inte går att skapa ett objekt av den.
  
= <b><span style="color:#931136">Ett körexempel</span></b> =
+
Metoden <b><span style="color:red">Next()</span></b> är icke-statisk, därför att den anropas med objektets referens <b>r</b>.
<div class="ovnC">
+
 
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: GetSetKorex.jpg]]</div>
+
Det går inte att anropa den icke-statiska metoden <b><span style="color:red">Next()</span></b> med klassnamnet <b><span style="color:blue">Random</span></b>.</big></big>
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Vad är Property?</span></b> =
+
= <b><span style="color:#931136">Körexempel</span></b> =
<div class="border-divblue">
+
<div class="ovnE">
<big>
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: RandTestKorex.jpg]]</div>
<b>Property</b> är en hybrid mellan datamedlem och metod som alltid är publik.
+
</div>
  
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.
+
= <b><span style="color:#931136">Klassen EncryptStr</span></b> =
</big>
+
<div class="ovnC">
 +
[[Image: EncryptStra.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Klassen EmplP</span></b> =
+
= <b><span style="color:#931136">Programmet EncryptStrTest</span></b> =
<div class="ovnA">
+
<div class="ovnC">
[[Image: EmplP.jpg]]
+
[[Image: EncryptStrTesta.jpg]]
 
</div>
 
</div>
  
  
= <b><span style="color:#931136">Programmet Property</span></b> =
+
= <b><span style="color:#931136">Ett körexempel</span></b> =
<div class="ovnA">
+
<div class="ovnC">
[[Image: Property.jpg]]
+
<div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: EncryptKorex.jpg]]</div>
 
</div>
 
</div>
 
 
= <b><span style="color:#931136">Körexempel: samma som ovan.</span></b> =
 
  
 
<br>
 
<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 Statiska metoder och Referens i metoder i [http://www.mathonline.se/Progr_2/Boken%20Progr_2_Cs.pdf <span style="color:blue">kursboken</span>] på sid 135-142.</span></b> =
  
  
Rad 103: Rad 87:
  
  
[[Matte:Copyrights|Copyright]] © 2021 [https://www.techpages.se <b><span style="color:blue">TechPages AB</span></b>]. All Rights Reserved.
+
[[Matte:Copyrights|Copyright]] © 2022 [https://www.techpages.se <b><span style="color:blue">TechPages AB</span></b>]. All Rights Reserved.

Nuvarande version från 16 februari 2022 kl. 09.46

       Lektion 23          Genomgång          Övningar      


Allokeringsmodifieraren static

Static.jpg


Statiska datamedlemmar kallas för klassvariabler, därför att de tillhör klassen och inte något specifikt objekt.

Icke-statiska datamedlemmar kallas för instansvariabler, därför att de tillhör objekten och inte klassen.


Programmet RandTest

RandTest.jpg


Metoden WriteLine() är statisk, därför att den anropas med klassnamnet Console.

Console är en statisk klass, därför att det inte går att skapa ett objekt av den.

Metoden Next() är icke-statisk, därför att den anropas med objektets referens r.

Det går inte att anropa den icke-statiska metoden Next() med klassnamnet Random.


Körexempel

RandTestKorex.jpg


Klassen EncryptStr

EncryptStra.jpg


Programmet EncryptStrTest

EncryptStrTesta.jpg


Ett körexempel

EncryptKorex.jpg


Läs om Statiska metoder och Referens i metoder i kursboken på sid 135-142.


 










Copyright © 2022 TechPages AB. All Rights Reserved.