Pași
1. Cum se definește o clasă simplă pentru a reprezenta un obiect Donut
Să începem cu definirea unei clase simple care va reprezenta un obiect Donut cu proprietățile name și productCode. Acest exemplu este o revizuire a tutorialului anterior despre Cum să creăm clase și obiecte în Scala.
Similar cu tutorialul anterior, să avem, de asemenea, o funcție print() care va imprima numele și productCode pentru un obiect Donut dat. Dacă nu sunteți familiarizați cu crearea de funcții în Scala, vă puteți referi din nou la Tutorialele de funcții.
2. Cum să declarăm un obiect companion pentru clasa Donut
Un obiect companion se definește folosind cuvântul cheie object, iar numele obiectului trebuie să fie identic cu numele clasei.
În plus, obiectul companion ar trebui să definească o metodă apply() care va fi responsabilă pentru instanțierea unei instanțe a clasei date.
Din moment ce clasa Donut de la pasul 1 necesită proprietățile name și productCode, furnizăm, de asemenea, parametri de intrare similari pentru metoda apply(), așa cum se arată mai jos.
3. Cum să creați instanțe ale clasei Donut folosind obiectul companion
Cu obiectul companion definit în Pasul 2 de mai sus, puteți crea acum instanțe ale clasei Donut fără a fi nevoiți să folosiți cuvântul cheie new.
NOTA:
- Sigur că ați putea argumenta că obiectul companion nu adaugă cu adevărat nicio valoare specială în afară de faptul că nu trebuie să folosiți cuvântul cheie new.
- Cu toate acestea, în următorul tutorial, vă voi arăta cum metoda apply() a obiectului companion poate fi folosită ca o fabrică pentru clasa dumneavoastră.
4. Cum să apelăm funcția print pentru fiecare dintre obiectele gogoașă
În continuare, să apelăm funcția print() din obiectele noastre gogoașă, așa cum se arată mai jos.
println("\nStep 4: How to call function on each Donut object")glazedDonut.printvanillaDonut.print
Ar trebui să vedeți următoarea ieșire atunci când rulați aplicația Scala în IntelliJ:
Step 4: How to call the print function for each of the Donut objectDonut name = Glazed Donut, productCode = 1111Donut name = Vanilla Donut, productCode = 2222
.