Stappen
1. Hoe definieer je een eenvoudige klasse om een Donut-object weer te geven
Laten we beginnen met het definiëren van een eenvoudige klasse die een Donut-object weergeeft met de eigenschappen naam en productCode. Dit voorbeeld is een herhaling van de vorige tutorial over Hoe klassen en objecten in Scala te maken.
Op dezelfde manier als in de vorige tutorial, laten we ook een print() functie die de naam en productCode voor een gegeven donut object zal afdrukken. Als u niet bekend bent met het maken van functies in Scala, kunt u terugverwijzen naar de Functions Tutorials.
2. Hoe declareer je een companion object voor de Donut klasse
Een Companion Object wordt gedefinieerd met behulp van het object keyword en de naam van het object moet identiek zijn aan de naam van de klasse.
Daarnaast moet het companion object een apply() methode definiëren die verantwoordelijk zal zijn voor het instantiëren van een instantie van de gegeven klasse.
Omdat de Donut klasse uit stap 1 naam en productCode eigenschappen vereist, geven we ook soortgelijke invoerparameters aan de apply() methode zoals hieronder getoond.
3. Hoe maak je instanties van de Donut klasse met behulp van het companion object
Met het companion object gedefinieerd in stap 2 hierboven, kunt u nu instanties van de Donut klasse maken zonder het nieuwe sleutelwoord te hoeven gebruiken.
NOTE:
- Zeker zou je kunnen betogen dat het companion object niet echt een speciale waarde toevoegt, anders dan het niet hoeven te gebruiken van het nieuwe sleutelwoord.
- Hoe dan ook, in de volgende tutorial, zal ik je laten zien hoe de apply() methode van het companion object kan worden gebruikt als een fabriek voor je klasse.
4. Hoe roepen we de print functie aan voor elk van de donut objecten
Volgende, laten we de print() functie van onze donut objecten aanroepen zoals hieronder getoond.
println("\nStep 4: How to call function on each Donut object")glazedDonut.printvanillaDonut.print
U zou de volgende output moeten zien wanneer u uw Scala applicatie in IntelliJ uitvoert:
Step 4: How to call the print function for each of the Donut objectDonut name = Glazed Donut, productCode = 1111Donut name = Vanilla Donut, productCode = 2222