Przeciążenie operatora
Aby zrozumieć koncepcję przeciążenia operatora, zamierzamy zaimplementować najbardziej podstawowy i powszechnie przeciążony operator, którego używamy, operatora „+”. Zwykle operator „+” służy do dodania dwóch liczb. Ale jeśli napiszmy to między ciągiem a liczbą, połączy to obu z nich. To dobry przykład przeciążenia niewidomego operatora.
W powyższym programie C# zademonstrowaliśmy prostą funkcję, w której używamy operatora „+”, aby dodać 2 liczby w pierwszym wierszu, a następnie w drugim wierszu używamy tego samego operatora, aby dodać ciąg i liczbę to razem Słowo powoduje połączenie łańcucha i liczbę, ponieważ przeciążamy operatora, aby to zrobić.
Wyjście powyższego programu pokazuje podwójny charakter operatora „+”; W pierwszej operacji po prostu dodaje dwie liczby dla wyniku jako 4, ale w drugiej operacji operator „+” działa jako agent połączenia łańcucha z liczbą, ponieważ jest wstępnie zdefiniowany w programowaniu C# język.
Teraz przyjrzymy się niektórym przykładom dotyczącym przeciążenia operatora, w którym użyjemy słowa kluczowego „operatora”, aby podać go jako przeciążenie pewnego operatora.
Przykład 01: Przeciążenie operatora „-” w Ubuntu 20.04
W tym przykładzie skupimy się na szerokim przeciążeniu operatora poprzez dziedziczenie metod przeciążenia. W takim przypadku operator „-” zostanie przeciążony. Wartość zmiennej liczb całkowitych zostanie przydzielona do operatora „-”; Jednak typowe działanie „-” zostanie zmienione przez przeciążenie. Użyjemy algebry do przetłumaczenia operatora „-” na znak, który można podać na liczbę.
W powyższym przykładzie mamy dwie zmienne całkowite i zastąpiliśmy ich wartości pozostałe dwa liczby całkowite. Następnie stworzyliśmy funkcję przeciążenia za pomocą słowa kluczowego „Operatora”, w którym konwencjonalne działanie operatora „-” zostało na nowo zdefiniowane. Następnie zadzwoniliśmy do operatora przeciążonego w programie głównym, aby zobaczyć różnicę między operatorem normalnym i przeciążonym. Po skompilowaniu i wykonaniu powyższego programu otrzymamy następujący wynik:
Jak widzimy, że operator jest teraz przeciążony, a predefiniowana funkcja z przeciążonej metody jest przeprowadzana na ostatnim połączeniu.
Przykład 02: Przeciążenie operatora „+” w Ubuntu 20.04
Jak omówiliśmy wcześniej, operator „+” jest przeciążony i może wykonywać wiele operacji, ale nadal można go przeciążać metodami i dziedzictwem obiektów klasowych. W tym przykładzie będziemy przeładowywać operator „+”, w którym będziemy operator „+” do dodania dwóch obiektów klasy, a nie liczb, który jest predefiniowaną funkcją operatora „+”. Operator „+” zostanie przeciążony za pomocą metody słowa kluczowego „Operator”.
W tym programie C# będziemy tworzyć metodę przeciążenia operatora „+”. Najpierw utworzymy klasę i wywołamy jej obiekt w metodzie przeciążenia. Obiekty te będą używane do definiowania funkcjonalności operatora „+”, który dodaje dwa obiekty do klasy za pomocą operatora „+”. Następnie zostanie utworzona metoda wyświetlania, która wyświetli obiekt „num”. W programie głównym utworzymy nowe obiekty i przypisujemy wartości do klas, a następnie użyjemy przeciążonego operatora „+”, aby dodać do siebie dwa obiekty. Po skompilowaniu powyższego programu otrzymamy dane wyjściowe, jak pokazano poniżej:
Wartości obiektów klasy są pokazane na wyjściu, które są „5” i „10”, a suma tych obiektów to „15”, wskazując, że teraz przeciążliśmy operatora „+”, aby dodać dwa obiekty z klasa i sumuj je dla wyniku, podobnie jak zwykle dodawanie dwóch liczb całkowitych.
Przykład 03: Przeciążenie operatora „*” w Ubuntu 20.04
Metoda przeciążenia operatora „*” zostanie omówiona w tym przykładzie. Słowo kluczowe operatora zostanie użyte do zapewnienia metody przeciążenia dla operatora „*”. Podstawowym zadaniem operatora „*” jest pomnożenie dwóch liczb całkowitych, ale w tym przykładzie przeciążymy je, definiując go, aby pomnożyć dwa obiekty klasy i traktować je jako dwie liczby.
Stworzyliśmy metodę publiczną, w której przypisaliśmy liczbę całkowitą do obiektu. Następnie utworzyliśmy publiczną metodę przeciążenia operatora „*” za pomocą słowa kluczowego operatora przed symbolem i parametrami. Parametry tej funkcji to obiekty poprzedniej klasy; stąd dziedziczy poprzednią jednostkę klasy, która jest następnie mnożona przez siebie nawzajem w nowym obiekcie, a ten obiekt zostanie zwrócony z tej metody. W głównej funkcji utworzymy trzy nowe obiekty i przypisamy dwie z nich niektóre wartości w parametrze. Następnie obiekty te zostaną pomnożone za pomocą przeciążonego operatora, a wynik zostanie wyświetlony na ekranie Jak wyjściowe. Po pomyślnym skompilowaniu i wykonaniu powyższego programu otrzymasz następujący wynik, jak pokazano w fragmencie:
Jak widzimy, że dwa pierwsze liczby są wyświetlane za pomocą funkcji wyświetlania, która zwraca obiekty klasy egzaminacyjnej. Następnie mamy wynikową wartość mnożenia tych dwóch obiektów, która wynosi „50”, chociaż operator „*” przyjmuje tylko iloczyn dwóch liczb z powodu naszego przeciążenia, operator pomnożył również dwa obiekty.
Przykład 04: Przeciążenie operatora równości w Ubuntu 20.04
Teraz będziemy przeciążać operatora równości w języku programowania C#. W tym przykładzie operator równości zostanie użyty do porównywania obiektów klasy, a nie jej normalnej funkcji do przypisywania wartości do zmiennych. Wartości obiektu będą takie same w tym scenariuszu, ale aby wyróżnić, użyjemy innego odniesienia i zobaczymy różnicę w wyniku tej operacji.
Zbudujemy klasę „egzamin” we wspomnianym programie C# i zainicjujemy w nim pewne zmienne, które będziemy używać w funkcji wewnętrznej „Display ()”,. Następnie podamy równoważne liczby do dwóch obiektów klasy „egzaminacyjnej” i porównać je ze sobą, ponieważ trzecia pozycja została odniesiona z drugiego, co spowoduje równy wynik. Na Ubuntu 20.04 Terminal wiersza poleceń przetestujemy tę funkcję, uruchamiając wyżej wymienioną aplikację.
Jak widzimy, że pierwsze porównanie nie odniosło sukcesu, ale drugie było to, że mieli to samo odniesienie.
Wniosek
W tym artykule omówiliśmy podstawową koncepcję przeciążenia operatora. Język programowania C# umożliwia koncepcję ładowania operatora, a nawet już dostosował to w odniesieniu do operatora „+”, który dodaje liczby i łączy ciągi. Operatorzy przeładowani zostali omówione i wdrożone w Ubuntu 20.04 Środowisko, aby lepiej zrozumieć, w jaki sposób tworzone są metody przeciążenia.