Kap 3 Metoder i OOP (forts.)

Från Mathonline
Version från den 27 november 2022 kl. 16.00 av Taifun (Diskussion | bidrag)

Hoppa till: navigering, sök
        <<  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.