Kap 3 Metoder i OOP (forts.)
<< Agenda | Genomgång | Dagens övningar | Nästa lektion >> |
3.3 Statiska datamedlemmar och metoder
- Gå igenom texten (PDF 3 sidor):
Allokeringsmodifieraren static
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
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
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)
Ö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
Programmet Overload
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
Copyright © 2022 TechPages AB. All Rights Reserved.