Scala Tutorial – Naučte se vytvářet a používat doprovodné objekty

Kroky

1. Jak definovat jednoduchou třídu reprezentující objekt Donut

Začneme definicí jednoduché třídy, která bude reprezentovat objekt Donut s vlastnostmi name a productCode. Tento příklad je přehledem z předchozího tutoriálu Jak vytvářet třídy a objekty ve Scale.

Podobně jako v předchozím tutoriálu mějme také funkci print(), která vypíše jméno a productCode pro daný objekt Donut. Pokud nejste obeznámeni s vytvářením funkcí v jazyce Scala, můžete se vrátit k návodu na funkce.

2. Jak deklarovat doprovodný objekt pro třídu Donut

Provodný objekt se definuje pomocí klíčového slova object a název objektu by měl být totožný s názvem třídy.

Doprovodný objekt by měl navíc definovat metodu apply(), která bude zodpovědná za instanciaci instance dané třídy.

Protože třída Donut z kroku 1 vyžaduje vlastnosti name a productCode, zadáváme podobné vstupní parametry také metodě apply(), jak je uvedeno níže.

3. Jak vytvořit instance třídy Donut pomocí doprovodného objektu

Pomocí doprovodného objektu definovaného v kroku 2 výše můžete nyní vytvářet instance třídy Donut, aniž byste museli používat klíčové slovo new.

Poznámka:

  • Jistě můžete namítnout, že doprovodný objekt ve skutečnosti nepřináší žádnou zvláštní hodnotu kromě toho, že nemusíte používat klíčové slovo new.
  • V příštím tutoriálu vám však ukážu, jak lze metodu apply() objektu companion použít jako továrnu pro vaši třídu.

4. V příštím tutoriálu vám ukážu, jak lze metodu apply() objektu companion použít jako továrnu pro vaši třídu. Jak zavolat funkci print pro každý z objektů donutů

Dále zavoláme funkci print() z našich objektů donutů, jak je uvedeno níže.

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

Po spuštění aplikace Scala v IntelliJ byste měli vidět následující výstup:

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

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.