Skillnad mellan versioner av "Kap 3 Metoder i OOP (forts.)"

Från Mathonline
Hoppa till: navigering, sök
m
m
 
(7 mellanliggande versioner av samma användare visas inte)
Rad 1: Rad 1:
__TOC__
+
__NOTOC__
 +
v 48, ht 2022
 +
 
 +
 
 
{| 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 55: Rad 58:
 
= <b><span style="color:#931136">De tre "Över"s i programmering:</span></b> =
 
= <b><span style="color:#931136">De tre "Över"s i programmering:</span></b> =
  
= <b><span style="color:#931136">1. &nbsp; Överskrivning av variabler (overwriting):</span></b> =
+
= <b><span style="color:#931136">1) &nbsp; Överskrivning av variabler (overwriting):</span></b> =
  
 
== <b><span style="color:#931136">&nbsp; &nbsp; &nbsp; &nbsp; En variabels värde överskrivs av ett nytt värde, t.ex.<span>:</span>[[Inl%C3%A4sning,_%C3%B6verskrivning_och_operatorer#Programmet_Overwrite|<math> \; \mathbf{\mathit{{\color{Blue} {x \, = \, x\,+\,1}}}}</math>]].</span></b> ==
 
== <b><span style="color:#931136">&nbsp; &nbsp; &nbsp; &nbsp; En variabels värde överskrivs av ett nytt värde, t.ex.<span>:</span>[[Inl%C3%A4sning,_%C3%B6verskrivning_och_operatorer#Programmet_Overwrite|<math> \; \mathbf{\mathit{{\color{Blue} {x \, = \, x\,+\,1}}}}</math>]].</span></b> ==
  
 +
= <b><span style="color:#931136">2a) Överskskuggning av variabler (overriding): </span></b> =
  
= <b><span style="color:#931136">2. &nbsp; Överskskuggning av variabler (overriding): </span></b> =
+
== <b><span style="color:#931136">&nbsp; &nbsp; &nbsp; &nbsp; Lokal variabel i en metod överskuggar datamedlem med samma namn, </span></b> ==
  
== <b><span style="color:#931136">&nbsp; &nbsp; &nbsp; &nbsp; Lokal variabel i en metod överskuggar datamedlem med samma namn,
+
== <b><span style="color:#931136">&nbsp; &nbsp; &nbsp; &nbsp; t.ex.<span>:</span> [[Variablers_livslängd_%26_Överskuggning_av_variabler#L.C3.B6sningen:_Programmet_OverrideVar|<span style="color:blue">Programmet OverrideVar</span>]].</span></b> ==
  
t.ex.<span>:</span> [[Variablers_livslängd_%26_Överskuggning_av_variabler#L.C3.B6sningen:_Programmet_OverrideVar|<span style="color:blue">Programmet OverrideVar</span>]].</span></b> ==
+
= <b><span style="color:#931136">2b) Överskskuggning av metoder (overriding): </span></b> =
  
 +
== <b><span style="color:#931136">&nbsp; &nbsp; &nbsp; &nbsp; Metod i en subklass överskuggar superklassens metod med samma namn: [[Kap_1_Objektorienterad_programmering_(forts._2)#1.9_.C2.A0_Polymorfism|<span style="color:blue">Polymorfism</span>]]. </span></b> ==
  
= <b><span style="color:#931136">3. &nbsp; Överlagring av metoder (overloading)</span></b> =
+
= <b><span style="color:#931136">3) &nbsp; Överlagring av metoder (overloading)</span></b> =
 
<div class="ovnE">
 
<div class="ovnE">
 
[[Image: Overlagringa.jpg]]
 
[[Image: Overlagringa.jpg]]

Nuvarande version från 27 november 2022 kl. 19.15

v 48, ht 2022


        <<  Agenda          Genomgång          Dagens övningar          Nästa lektion  >>      


3.3   Statiska datamedlemmar och metoder

Gå igenom texten (PDF 3 sidor):
\( \qquad\;\;\, \)\( \qquad\;\;\, \)


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


De tre "Över"s i programmering:

1)   Överskrivning av variabler (overwriting):

        En variabels värde överskrivs av ett nytt värde, t.ex.:\( \; \mathbf{\mathit{{\color{Blue} {x \, = \, x\,+\,1}}}}\).

2a) Överskskuggning av variabler (overriding):

        Lokal variabel i en metod överskuggar datamedlem med samma namn,

        t.ex.: Programmet OverrideVar.

2b) Överskskuggning av metoder (overriding):

        Metod i en subklass överskuggar superklassens metod med samma namn: Polymorfism.

3)   Överlagring av metoder (overloading)

Overlagringa.jpg

Överlagring av metoder (eng. overloading) är ett koncept för att koda funktionaliteter som är be-

släktade med varandra men ändå inte identiska. Även operatorer kan vara överlagrade, t.ex. + och /

Ex.: Att bromsa en lastbil görs på ett annat sätt än att bromsa en båt. Ändå heter båda "bromsa".

Biblioteksmetoden Console.WriteLine() har 18 olika överlagringar (varianter) som bildar metod-

gruppen Console.WriteLine, se kursboken sid 165.


Signaturen

Signaturena.jpg


Programmet Overload

P Overloada.jpg

Biblioteksmetoderna Substring() överlagrar varandra. De tar ut delsträngar på olika sätt.

De skiljs åt genom att ha olika antal parametrar.

De egendefinierade metoderna Power() överlagrar varandra. De beräknar potenser på olika sätt.

De skiljs åt genom att ha olika datatyper till sina parametrar.


Körexempel

Overload Korex.jpg








Copyright © 2022 TechPages AB. All Rights Reserved.