Scala Tutorial – Learn How To Create And Use Companion Objects

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

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.