Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

9.2.9 Metodien kuormittaminen (lisämäärittely, overloading)

Edellisessä esimerkissä oli kolme samannimistä metodia Aika4. Kussakin oli eri määrä parametrejä. Tätä sanotaan metodin kuormittamiseksi, eli mahdollisuudeksi määritellä lisää merkityksiä (eng. overloading) metodin nimelle. Varsinainen kutsuttava metodi tunnistetaan nimen ja parametrilistassa olevien lausekkeiden avulla. Metodin nimi koostuukin tavallaan nimen ja parametrilistan yhdisteestä. Siten jos olisi vaikka kutsut

	a1.tulosta();             // Tulostaisi  14:15
	a1.tulosta("Kello on ");  // Tulostaisi  Kello on 14:15

niin kumpikin tulosta-kutsu kutsuu eri metodia. Metodien kuormitus onkin varsin mukava lisä ohjelmointiin, se ei kuitenkaan ole varsinaisia olio-ohjelmoinnin piirteitä.

Huomattakoon että kuormitetuissa metodeissa ero on oltava parametreissa, pelkkä ero metodin paluuarvossa ei riitä erottelemaan mitä metodia tarkoitetaan.

Tehtävä 9.5 Mitäs me tehtiin kun ei ollut kuormitusta?

Miten asiat on hoidettava C-kielessä, kun siellä funktioiden nimien kuormitus ei ole mahdollista, vaan kunkin funktion nimen tulee olla yksikäsitteinen.

Tehtävä 9.6 Lisäys yhdellä

Tee vielä uusi lisaa metodi, jota voidaan kutsua a1.lisaa(); jolloin metodi lisää aikaa yhdellä minuutilla.

Tehtävä 9.7 Vain tuntien asettaminen

Kirjoita vielä yksi lisaa-metodi, jolla voidaan asettaa pelkät tunnit.


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys