Schritte
1. Wie man eine einfache Klasse definiert, um ein Donut-Objekt darzustellen
Lassen Sie uns mit der Definition einer einfachen Klasse beginnen, die ein Donut-Objekt mit den Eigenschaften name und productCode darstellt. Dieses Beispiel ist eine Wiederholung des vorangegangenen Tutorials How To Create Classes And Objects In Scala.
Ähnlich wie im vorangegangenen Tutorial wollen wir auch eine print()-Funktion haben, die den Namen und den Produktcode für ein gegebenes Donut-Objekt ausgibt. Wenn Sie mit dem Erstellen von Funktionen in Scala nicht vertraut sind, können Sie auf die Funktionen-Tutorials zurückgreifen.
2. Wie man ein Companion-Objekt für die Klasse Donut deklariert
Ein Companion-Objekt wird mit dem Schlüsselwort object definiert und der Name des Objekts sollte mit dem Klassennamen identisch sein.
Außerdem sollte das Companion Object eine apply()-Methode definieren, die für die Instanziierung einer Instanz der gegebenen Klasse verantwortlich ist.
Da die Donut-Klasse aus Schritt 1 die Eigenschaften name und productCode benötigt, stellen wir der apply()-Methode auch ähnliche Eingabeparameter zur Verfügung, wie unten gezeigt.
3. Erstellen von Instanzen der Klasse Donut mit dem Companion-Objekt
Mit dem Companion-Objekt, das in Schritt 2 oben definiert wurde, können Sie nun Instanzen der Klasse Donut erstellen, ohne das Schlüsselwort new verwenden zu müssen.
Hinweis:
- Sicherlich könnte man argumentieren, dass das Companion-Objekt keinen besonderen Mehrwert bietet, außer dass Sie das Schlüsselwort new nicht verwenden müssen.
- Im nächsten Tutorium werde ich Ihnen jedoch zeigen, wie die apply()-Methode des Companion-Objekts als Fabrik für Ihre Klasse verwendet werden kann.
4. Wie man die Druckfunktion für jedes Donut-Objekt aufruft
Als Nächstes rufen wir die print()-Funktion von unseren Donut-Objekten wie unten gezeigt auf.
println("\nStep 4: How to call function on each Donut object")glazedDonut.printvanillaDonut.print
Sie sollten die folgende Ausgabe sehen, wenn Sie Ihre Scala-Anwendung in IntelliJ ausführen:
Step 4: How to call the print function for each of the Donut objectDonut name = Glazed Donut, productCode = 1111Donut name = Vanilla Donut, productCode = 2222