Steps
1. Sådan defineres en simpel klasse til at repræsentere et Donut-objekt
Lad os starte med at definere en simpel klasse, som vil repræsentere et Donut-objekt med egenskaberne name og productCode. Dette eksempel er en gennemgang fra den tidligere tutorial om hvordan man opretter klasser og objekter i Scala.
Som i den tidligere tutorial skal vi også have en print()-funktion, som vil udskrive navnet og productCode for et givet donut-objekt. Hvis du ikke er bekendt med at oprette funktioner i Scala, kan du henvise tilbage til Tutorials om funktioner.
2. Hvordan man erklærer et ledsageobjekt for donut-klassen
Et ledsageobjekt defineres ved hjælp af nøgleordet object, og objektets navn skal være identisk med klassens navn.
Det ledsagende objekt skal desuden definere en apply()-metode, som er ansvarlig for at instantiere en instans af den givne klasse.
Da Donut-klassen fra trin 1 kræver egenskaberne name og productCode, giver vi også lignende inputparametre til apply()-metoden, som vist nedenfor.
3. Sådan oprettes instanser af Donut-klassen ved hjælp af companion-objektet
Med companion-objektet, der blev defineret i trin 2 ovenfor, kan du nu oprette instanser af Donut-klassen uden at skulle bruge nøgleordet new.
BEMÆRK:
- Sikkert kan man argumentere for, at companion-objektet ikke rigtig tilføjer nogen særlig værdi ud over, at du ikke behøver at bruge nøgleordet new.
- I den næste tutorial vil jeg imidlertid vise dig, hvordan apply()-metoden i companion-objektet kan bruges som en fabrik for din klasse.
4. Sådan kalder du print-funktionen for hvert af donut-objekterne
Næst skal vi kalde print()-funktionen fra vores donut-objekter som vist nedenfor.
println("\nStep 4: How to call function on each Donut object")glazedDonut.printvanillaDonut.print
Du bør se følgende output, når du kører din Scala-applikation i 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