Scala Tutorial – Tanuljuk meg, hogyan hozzunk létre és használjunk társobjektumokat

Lépések

1. Hogyan definiáljunk egy egyszerű osztályt egy Donut objektum reprezentálására

Kezdjük egy egyszerű osztály definiálásával, amely egy Donut objektumot fog reprezentálni name és productCode tulajdonságokkal. Ez a példa a How To Create Classes And Objects In Scala című előző bemutató ismétlése.

Hasonlóan az előző bemutatóhoz, legyen egy print() függvényünk is, amely kiírja egy adott Donut objektum nevét és productCode-ját. Ha nem ismerjük a függvények létrehozását a Scalában, akkor nézzük meg újra a Functions Tutorials-t.

2. Hogyan deklaráljunk társobjektumot a Donut osztályhoz

A társobjektumot az object kulcsszóval definiáljuk, és az objektum nevének meg kell egyeznie az osztály nevével.

Ezeken kívül a társobjektumnak definiálnia kell egy apply() metódust, amely az adott osztály egy példányának példányosításáért lesz felelős.

Mivel az 1. lépésből származó Donut osztály name és productCode tulajdonságokat igényel, az alábbiakban látható módon hasonló bemeneti paramétereket adunk meg az apply() metódusnak is.

3. A Donut osztály példányainak létrehozása a társobjektum használatával

A fenti 2. lépésben definiált társobjektummal már létrehozhatjuk a Donut osztály példányait anélkül, hogy a new kulcsszót kellene használnunk.

MEGJEGYZÉS:

  • Mondhatjuk persze, hogy a társobjektum nem igazán ad hozzá semmilyen különleges értéket azon kívül, hogy nem kell használnunk a new kulcsszót.
  • A következő bemutatóban azonban megmutatom, hogy a companion objektum apply() metódusa hogyan használható az osztályunk gyáraként.

4. Hogyan hívjuk meg a print függvényt az egyes donut objektumokhoz

A következőkben hívjuk meg a print() függvényt a donut objektumainkból az alábbiak szerint.

println("\nStep 4: How to call function on each Donut object")glazedDonut.printvanillaDonut.print

A Scala alkalmazásunk IntelliJ-ben történő futtatásakor a következő kimenetet kell látnunk:

Step 4: How to call the print function for each of the Donut objectDonut name = Glazed Donut, productCode = 1111Donut name = Vanilla Donut, productCode = 2222

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.