Kroki
1. Jak zdefiniować prostą klasę do reprezentowania obiektu Donut
Zacznijmy od zdefiniowania prostej klasy, która będzie reprezentować obiekt Donut z właściwościami name i productCode. Ten przykład jest powtórzeniem poprzedniego tutorialu How To Create Classes And Objects In Scala.
Podobnie jak w poprzednim tutorialu, utwórzmy również funkcję print(), która wypisze nazwę i kod produktu dla danego obiektu Donut. Jeśli nie jesteś zaznajomiony z tworzeniem funkcji w Scali, możesz wrócić do samouczka Functions.
2. Jak zadeklarować obiekt towarzyszący dla klasy Donut
Obiekt towarzyszący definiuje się za pomocą słowa kluczowego object, a nazwa obiektu powinna być identyczna z nazwą klasy.
Dodatkowo obiekt towarzyszący powinien definiować metodę apply(), która będzie odpowiedzialna za instancjonowanie instancji danej klasy.
Ponieważ klasa Donut z kroku 1. wymaga właściwości name i productCode, przekazujemy również podobne parametry wejściowe do metody apply(), jak pokazano poniżej.
3. Jak tworzyć instancje klasy Donut przy użyciu obiektu towarzyszącego
Dzięki obiektowi towarzyszącemu zdefiniowanemu w kroku 2 powyżej, możesz teraz tworzyć instancje klasy Donut bez konieczności używania nowego słowa kluczowego.
UWAGA:
- Zapewne możesz argumentować, że obiekt towarzyszący tak naprawdę nie dodaje żadnej specjalnej wartości poza brakiem konieczności używania nowego słowa kluczowego.
- Jednakże w następnym tutorialu pokażę Ci, jak metoda apply() obiektu towarzyszącego może być użyta jako fabryka dla Twojej klasy.
4. Jak wywołać funkcję print dla każdego z obiektów donut
Następnie wywołajmy funkcję print() z naszych obiektów donut, jak pokazano poniżej.
println("\nStep 4: How to call function on each Donut object")glazedDonut.printvanillaDonut.print
Powinieneś zobaczyć następujące dane wyjściowe po uruchomieniu aplikacji Scala w 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
.