Cechy Scala

Cechy Scala
Korzystanie z interfejsów jest bardzo ważną funkcją programowania obiektowego. Scala jest tak wszechstronnym językiem, że pozwala osiągnąć tę samą funkcjonalność, używając cech. Dlatego ten przewodnik będzie poświęcony użyciu cech w języku programowania Scala w Ubuntu 20.04.

Jaki jest cel cech w języku programowania Scala?

Wspominaliśmy już, że cechy w Scali służą temu samemu celowi, co interfejsy w Javie. Oznacza to, że możesz utworzyć ogólny interfejs za pomocą cech Scala, a twoje klasy będą mogły rozszerzyć tę cechę poprzez wdrożenie żądanych metod. Co więcej, interesującą rzeczą w cechach Scala jest to, że możesz swobodnie korzystać zarówno z metod abstrakcyjnych, jak i nie-abstrakcyjnych w ramach cechy. Jeśli jednak użyjesz metody nie-abstrakcyjnej w ramach cechy, nie będziesz musiał zapewnić jej implementacji w klasie, która rozszerzy tę cechę.

Korzystanie z cech w Scali:

Do dobrego wykorzystania cech w Scali w Ubuntu 20.04, będziesz musiał przeczytać następujące trzy przykłady:

Przykład nr 1: Korzystanie z cech z jedynie abstrakcyjnymi metodami w Scali:

W języku programowania Scala możemy mieć zarówno metody abstrakcyjne, jak i nie-abstrakcyjne w cenie. Jednak w tym przykładzie będziemy mieć po prostu abstrakcyjne metody w ramach naszej zdefiniowanej cechy i zobaczymy, jak działają cechy w języku programowania Scala. Musisz spojrzeć na kod pokazany poniżej, aby to zrozumieć:

Najpierw zdefiniowaliśmy cechę o nazwie „kategoria” w tym kodzie Scala. W ramach tej cechy zadeklarowaliśmy dwie metody abstrakcyjne za pomocą słowa kluczowego „def” za pomocą nazw „pracownika” i „pracownika”. Dlatego ponieważ są to metody abstrakcyjne, zaimplementujemy je w klasie, która rozszerzy tę cechę. Następnie zaprojektowaliśmy klasę o nazwie „Pracownik” i użyliśmy słowa kluczowego „rozszerza” do rozszerzenia cechy utworzonej powyżej z tej klasy. Następnie najpierw wdrożyliśmy abstrakcyjne metody naszej cechy w tej klasie. Następnie stworzyliśmy inną metodę o nazwie „Employee_name” w tej klasie.

Na koniec użyliśmy słowa kluczowego „Object” do tworzenia naszej klasy sterownika o nazwie „Cech”. W tej klasie mamy naszą funkcję „Main ()”, w której stworzyliśmy nową instancję naszej klasy „pracownika” o nazwie „EMP”. Następnie nazywaliśmy kolejno wszystkie funkcje tej klasy (te zdefiniowane w klasie, a także te rozszerzone od cechy) za pomocą instancji tej klasy.

Ten skrypt Scala można skompilować za pomocą polecenia podanego poniżej:

Cecha $ scac.Scala

Po udanej kompilacji ten skrypt można wykonać za pomocą następującego polecenia:

Cecha $ Scala

Możesz być świadkiem wyników pokazanych poniżej, że pomyślnie wdrożyliśmy klasę, która rozciąga się od cechy Scala, a jej wyjście okazały.

Przykład nr 2: Korzystanie z cech zarówno metodami abstrakcyjnymi, jak i nie-abstrakcyjnymi w Scali:

W tym przykładzie będziemy używać zarówno metod abstrakcyjnych, jak i nie-abstrakcyjnych w Scala. Oznacza to, że zaimplementujemy niektóre metody w ramach cechy i zaimplementujemy inne w klasie, które rozszerzy tę cechę. W ten sposób chcemy dowiedzieć się, jaki wpływ pozostawia nasz wynik. Dlatego będziemy używać tego samego przykładu, który zaimplementowaliśmy powyżej jako linia bazowa z niewielkimi modyfikacjami. Dokładny program Scala jest następujący:

Różnica między naszymi pierwszymi i drugimi przykładami polega na tym, że w tym z nich zaimplementowaliśmy metodę „pracowników_aga ()” w ramach naszej cechy. Stąd stał się metodą nie-abstrakcyjną. Z drugiej strony wdrożyliśmy metodę „pracownika ()” w naszej klasie, która rozszerzyła naszą cechę. Innymi słowy, zdefiniowaliśmy jedynie podpis tej funkcji w naszej cechy, co czyniło ją funkcją abstrakcyjną. Reszta kodu jest taka sama jak nasz pierwszy przykład.

Teraz, aby sprawdzić, czy ta modyfikacja pozostawiła jakikolwiek wpływ na nasze wyjście, czy nie, skompilowaliśmy i wykonaliśmy ten skrypt. Możesz spojrzeć na dane wyjściowe pokazane poniżej i potwierdzić, że to wyjście jest takie samo jak nasz pierwszy przykład. Oznacza to, że bez względu na to, czy używasz metod abstrakcyjnych lub nie-abstrakcyjnych w cechach Scala, twoje wyjście pozostanie takie same.

Przykład nr 3: Używanie wielu cech w Scali:

Klasa Scala może również przedłużyć wiele cech jednocześnie. Poniższy przykład przedstawia to:

Ponownie użyliśmy tego samego przykładu co linia bazowa. Jedyną różnicą między naszymi drugimi i trzecimi przykładami jest to, że w tym jednym stworzeliśmy kolejną cechę o nazwie „kwalifikacje” i wdrożyliśmy metodę niezażenkową w ramach tej cechy. Następnie, rozszerzając naszą klasę od tych cech, użyliśmy słowa kluczowego „Extends” z pierwszą cechą i użyliśmy słowa kluczowego „z” pomiędzy nazwami dwóch cech. Podobnie, jeśli masz więcej niż dwie cechy do rozszerzenia klasy, oddzielisz nazwy wszystkich cech za pomocą słowa kluczowego „z”. W naszej funkcji „Main ()” nazywaliśmy również funkcją nowej cechy, którą stworzyliśmy w tym przykładzie.

Poniższy obraz przedstawia wyjście tego skryptu Scala, co potwierdza, że ​​klasa może jednocześnie rozszerzyć wiele cech.

Wniosek:

Z pomocą tego samouczka chcieliśmy dać ci krótki przegląd działania cech w Scali w Ubuntu 20.04. W tym celu najpierw podzieliliśmy się z Tobą głównym celem wykorzystania cech w Scali, podkreślając ich bliskie podobieństwo do interfejsów w Javie. Następnie podzieliliśmy się, w jaki sposób te cechy można stosować za pomocą metod abstrakcyjnych i nie-abstrakcyjnych. Na koniec omówiliśmy trzy przykłady, które skutecznie wykorzystywały cechy Scala. Staraliśmy się zachować te przykłady niezwykle łatwe i proste, abyś mógł szybko zdobyć pojęcie używania cech Scala.