Interfejs C#

Interfejs C#
Podobnie jak zajęcia, istnieją inne pojemniki o nazwie interfejsy zawierające metody, zdarzenia i właściwości. Interfejsy zawierają tylko deklarację i definicję funkcji; cały opis jest używany gdzie indziej w programie lub głównie w innych klasach dziedziczących interfejs. Interfejsy nie mają swoich prywatnych członków. Wszyscy członkowie opisu funkcji są publiczne i działają jako informacje abstrakcyjne. Interfejs jest zdefiniowany za pomocą interfejsu nazwy słów kluczowych wraz z nazwą, którą chcesz podać. Korzystając z klas, nie jesteśmy w stanie wykonać zjawiska wielu dziedziczeń. Ale używając interfejsów, możliwe jest wykonanie wielu dziedziczeń. Działanie interfejsu zostanie omówione tutaj.

Składnia do deklarowania interfejsu

Interfejs




Po zdefiniowaniu interfejsu zaimplementujemy je za pomocą następującej składni:

# Klasa X: name_of_interface

Deklaracja ta odbywa się przy użyciu nazwy interfejsu powiązanego z klasą z okrężnicą. W ten sposób wszystkie elementy wewnątrz interfejsu są deklarowane puste klasę, która implementuje interfejs powinien zaimplementować wszystkie funkcje interfejsu.

Implementacja interfejsu

Przykład 1

Zadeklarujemy interfejs z jego nazwą po deklaracji biblioteki. W interfejsie zadeklarujemy tylko nazwę funkcji. Typ powrotu zostanie również wspomniany. Interfejs zawiera tylko nagłówki funkcji, której nie zawiera opisu związanego z funkcją. Zamykamy więc ciało interfejsu, ponieważ zdefiniowana jest tylko jedna funkcja.

Interfejs inter1

void display ();

Aby funkcja została wykonana, używamy klasy jako prostego programu C Sharp. Ale w przypadku interfejsu nazwa klasy jest zadeklarowana wzdłuż interfejsu, aby z nią kojarzyć.

# Klasa klasa testowa: inter1

W klasie funkcja jest pisana. Po prostu użyliśmy instrukcji konsoli, aby wyświetlić przykładowe zdanie.

W programie głównym utworzymy obiekt dla klasy. Ta deklaracja odbywa się dynamicznie za pomocą słowa kluczowego „nowego”.

TestClass t = new testClass (); ten obiekt zostanie użyty do wywołania funkcji zadeklarowanej w klasie po utworzeniu obiektu.

# T.wyświetlacz();

Teraz wykonamy kod za pomocą kompilatora MCS i mono do wykonania pliku za pomocą pliku .EXE rozszerzenie.

Plik $ MCS.Cs
$ plik mono.exe

Po wykonaniu zobaczysz, że wyświetlane jest zdanie, które zostało zadeklarowane w interfaceand wykonanej w osobnej funkcji, którą dostęp do obiektu w programie głównym.

Przykład 2

W przeciwieństwie do pierwszego przykładu, w interfejsie użyjemy trzech metod abstrakcyjnych. Funkcje te są powiązane z pojazdem. Każda funkcja zawiera parametry do zaakceptowania wartości wysłanych z wywołania funkcji.

Gdy interfejs jest deklarowany, klasa jest zaimplementowana w celu wykorzystania wszystkich funkcji wewnątrz interfejsu. Wykorzystaliśmy dwie klasy, które mają dwa różne rodzaje pojazdów. Każde wdrażanie wszystkich trzech funkcji, które są zadeklarowane w interfejsie.

Pierwsza funkcja związana z Gear przypisuje nową wartość przekładni do poprzedniej, akceptując wartość z parametru.

# Gear = NewGear;

Druga funkcja dotyczy przyspieszenia. Tak więc wartość wysłana w parametrze zostanie dodana do poprzedniego.

# Prędkość = prędkość + przyrost;

W przeciwieństwie do przyspieszania funkcja hamulców pomniejszona lub zmniejszy wartość wysłaną z poprzedniej.

# Prędkość = prędkość - zmniejszenie;

Wartości prędkości i biegu będą wyświetlane przez funkcję. Nie jest zadeklarowany w interfejsie i jest to funkcja statyczna klasy.

Inna klasa jest zaprojektowana do wdrożenia interfejsu. Wszystkie podejścia dla każdej funkcji są takie same, jak opisaliśmy dla pierwszej klasy. Podobnie funkcja wyświetlania wyświetli wszystkie obecne dane.

Teraz nadszedł czas, aby ogłosić główny program dostęp odpowiednio za pośrednictwem obiektów. Tworzona jest próbka klasowa posiadająca główny program w nim. Ponieważ mamy dwie klasy do zaimplementowania interfejsu (rower i rower) utworzymy obiekty osobno dla każdej klasy.

Po pierwsze, dla roweru:

# Rower rowerowy = nowy rower ();

Tworzenie obiektów zostanie dynamicznie wykonane. Za pośrednictwem tego obiektu każda funkcja jest wywoływana.

# Rower.ChangeGear (2);

Każdy parametr funkcji zawiera wartość typu liczb całkowitych w argumencie. Następnie każdy wynik jest wyświetlany przez wywołanie funkcji wyświetlania.

Po rowerze powstanie instancja roweru.

# Rower rowerowy = nowy rower ();

Podobnie wszystkie wywołania funkcji zostaną wykonane za pośrednictwem tego obiektu rowerowego.

# Rower.przyspieszenie (4);

Teraz wykonamy kod, aby zobaczyć, jak to działa. Podczas wykonywania zarówno wartości przekładni, jak i prędkość dla każdej klasy są wyświetlane osobno w zależności od sekwencji tworzenia obiektów i funkcji wywoływania przez obiekt.

Przykład 3

W poprzednim przykładzie wyświetliśmy tylko wartości bezpośrednio w programie zadeklarowanym w interfejsie. Ale tym razem obliczymy obszar wielokąta, wykonując funkcję w dwóch różnych kształtach. Rzućmy okiem na wdrożenie przykładu. Najpierw zadeklarujemy interfejs tutaj.

Interfejs ipolygone

Void calculatearea ();

Funkcja nie zawiera żadnych parametrów z nią. Oznacza to, że wszystkie zmienne są lokalnie zdefiniowane w funkcji. Po interfejsie zadeklarujemy prostokąt klasy, który zaimplementuje interfejs Ipolygon. Tak więc będziemy powiązać klasę z nazwą interfejsu.

# Prostokąt klasy: ipolygone

W klasie funkcja Calculatearea Jest używane. Wewnątrz funkcji wszystkie zmienne są przypisywane wartością. Wartości te są następnie używane w wzorze do obliczenia obszaru prostokąta.

# int obszar = l * b;

Po obliczeniach wyświetlana jest wynikowa wartość.

To samo zjawisko wdrażania interfejsu ipolgon odbywa się dla kwadratowego kształtu. Ale ponieważ wszystkie strony kwadratu są równe, nie potrzebujemy dwustronnych długości. Wszystkie strony mają równą długość, więc obszar zostanie obliczony przez pomnożenie dowolnych dwóch długości przez siebie.

# int obszar = l * l;

W programie głównym obiekty obu klas są tworzone, a następnie funkcja jest wywoływana przez te obiekty.

Rectangle ri = nowy prostokąt ();
R1.calculatearea ();

To samo podejście dotyczy klasy kwadratowej.

Teraz wykonaj kod, widać, że oba obszary różnych kwadratów są wyświetlane przez wywołanie funkcji odpowiednio przez ich obiekty.

Wniosek

C SHARP interfejs służy do ukrycia określonych informacji w określony sposób, aby wyświetlić tylko te ważne informacje. Podczas definiowania interfejsu widzieliśmy, że opisano tylko nagłówek funkcji. Deklaracja nagłówka składa się z rodzaju powrotu funkcji i argumentu obecnego w parametrze. W tym artykule wdrożyliśmy kilka przykładów w systemie operacyjnym Linux. W każdym przykładzie definiuje się osobny interfejs, który zawiera pojedynczą lub liczbę interfejsów opisanych później w ich odpowiednich klasach.