Einführung in die Kapselung in C

Es gab Fälle, in denen wir aus geschäftlichen Gründen komplexen Code schreiben mussten. Dieser Code wird nicht benutzerfreundlich sein und sieht schwer zu verstehen aus. Um das Programm besser lesbar zu machen, können wir das komplexe Codefragment in eine Kapsel packen und ausblenden. Dies dient auch als zusätzliche Schutzschicht gegen böswillige Injektionen in den Code. Wir können diesen Teil des Codes dann verwenden, indem wir seine Instanz im Hauptprogramm aufrufen, anstatt den gesamten Satz komplexer Zeilen zu schreiben. Diese Funktion wird als Kapselung bezeichnet. Es ist eines der Hauptmerkmale objektorientierter Sprachen. Es ist jedoch nicht nur auf OOP-Sprachen beschränkt. In C war die Kapselung trotz des Fehlens von privaten und öffentlichen Schlüsselwörtern. Encapsulation wird auch von verschiedenen anderen Programmiersprachen wie C #, C ++, PHP und JAVA verwendet.

Arbeitsweise der Verkapselung in C

Um die Funktionsweise der Kapselung zu verstehen, betrachten wir das reale Beispiel. Stellen Sie sich ein großes Unternehmen vor, das über eine eigene Produktionseinheit für Bücher verfügt und diese an Kunden ausliefert, indem Sie sich mit Drittanbietern zusammenschließen. Damit dieses Geschäftsmodell funktioniert, sind verschiedene Abteilungen beteiligt, z. B. die Beschaffungsabteilung, die Produktionsabteilung, die Verkaufsabteilung und die Finanzabteilung. Die Beschaffungsabteilung kümmert sich um alle beschaffungsbezogenen Aktivitäten wie die Beschaffung von Tinte, Papier, Papierumschlägen, Druckern usw. Die Verkaufsabteilung kümmert sich um Marketing und Rekordverkäufe. Verantwortlichkeiten der Finanzabteilung für die Durchführung der Finanzprüfungen, die Berechnung von Gewinnen / Verlusten und die Veröffentlichung von Berichten, auf deren Grundlage wichtige strategische Entscheidungen getroffen werden. Im Falle eines Umsatzrückgangs wirkte sich dies auf die Finanzen des Unternehmens aus. In diesem Fall kann die Finanzabteilung nicht direkt auf die Verkaufsdaten zugreifen. Die Finanzabteilung muss ein Mitglied des Verkaufsteams auffordern, die relevanten Daten zu erhalten. Das ist Encapsulation. Alle Finanzaktivitäten werden unter einer Einheit zusammengefasst, die als „Finanzabteilung“ bezeichnet wird.

Dieses Konzept der Kapselung wird in der Sprache C zum Ausblenden und Schützen von Daten verwendet. Es kann implementiert werden, wenn das aufrufende Hauptprogramm ein Objekt hat, das Objekt in der Lage sein sollte, die anwendbaren Funktionen zu finden, und auf die gleiche Weise, wie sie die Daten finden.

Vorteile der Verkapselung in C

  1. Die Kapselung verbirgt die Implementierung eines Programms und ist daher in Zukunft leicht zu lesen und an die geschäftlichen Anforderungen anzupassen.
  2. Es ermöglicht uns, die aktualisierte Codeversion nach Bedarf bereitzustellen, ohne dass das gesamte Programm neu strukturiert werden muss.
  3. Es sichert das Programm durch Bereitstellung von Funktionen zum Ausblenden von Daten.
  4. Die Kapselung fördert eine modulare Art der Programmierung und macht den Code widerstandsfähig.

Warum brauchen wir die Kapselung in C?

Wir benötigen eine Kapselung in C, um die Zugriffsmodifikatoren in C zu manipulieren. Die Zugriffsmodifikatoren sind in C ++ explizit vorhanden, z. B. für Public, Private, aber nicht explizit in C. Obwohl wir diese Eigenschaft in C nutzen können, indem wir die Kapselung implementieren. Die Kapselung bietet auch sicheren Code, der anhand eines Beispiels im folgenden Abschnitt besser verstanden werden kann. Dies fördert die Anpassungsfähigkeit an sich ändernde Anforderungen, da jeder Code, der eine Änderung erfordert, in einer separaten Datei geändert werden kann, ohne dass Änderungen im Hauptprogramm vorgenommen werden müssen. Dies gibt bis zu einem gewissen Grad einfachen und fehlerfreien Code.

Beispiel für die Verkapselung in C

Daten in C-Sprache sind standardmäßig öffentlich. Obwohl "Struct" -Variablen als privat deklariert werden können, definieren Sie sie getrennt von der Hauptklasse. Dies kann durch separate Header- und Quell-C-Dateien erreicht werden. Auf eine Header-Datei folgt die Erweiterung „.h“, auf C-Dateien die Erweiterung „.C“. Im folgenden Beispiel: Es gibt drei Dateien

  1. p_variable.h
  2. main_prog.c
  3. Access_pfile.c

p_variable.h: Dies ist eine Header-Datei, die in andere ".c" -Dateien aufgenommen werden soll. Diese Datei fungiert als Verbindung zwischen den Daten, die über mehrere Dateien verteilt sind.

main_prog.c: Dies ist die Hauptimplementierungsdatei. Wenn dies ausgeführt wird, erfolgt ein Funktionsaufruf für Funktionen, die zusammen mit Strukturen in anderen C-Dateien definiert sind.

Access_pfile.c: Es ist eine Datei mit Struktur. Da für "struct" die Zuweisung und Freigabe von Speicher erforderlich ist, werden einige Funktionen aus der Standard-C-Bibliothek wie "malloc ()" und "alloc ()" verwendet.

Datei: p_variable.h

#ifndef PRIVATE_VARIABLE
#define PRIVATE_VARIABLE
struct Con; // It is a variable to store contact
struct Con * create_contact(); // functional call to create function
void delete_contact( struct Con * some_contact ); // functional call to delete function
#endif //PRIVATE_VAR

Datei: Access_pfile.c

#include "p_variable.h" //we hav included header file in this file so as to access the structure members. This is //an indirect way of accessing structures and thus implementing encapsulation.
#include
#include
struct Con //structure definition containing two members. Both the members are integer type
(
int mob_number;
int flat_number;
);
struct Con * create_contact() // structure declaration. In this code section we allocate memory for the data we //need to input in the above defined members. Malloc function allocates the memory.
(
struct Con * some_contact;
some_contact = malloc(sizeof(struct Con));
some_contact->mob_number = 1234567891;
some_contact->flat_number = 541;
return( some_contact );
)
void delete_contact( struct Con * some_contact )
(
free(some_contact); // this is tandard C function to de- allocate the memory. It frees up the memory so that //the same can be used by other programs.
)

Datei: main_prog.c

#include "p_variable.h"
#include
int main()
(
struct Con * Meghna;
Meghna = create_contact();
printf( "Mobile number: %d\n", Meghna->mob_number); // This should cause compile time error as we are //trying to access the private struct member
delete_contact( Meghna );
return 0;
)

Ausgabe:

Fazit

Die Kapselung ist der führende Schritt zur objektorientierten Programmierung. Dieser Artikel enthält Informationen zur Kapselung in C. Mit Accessor- und Mutator-Methoden, Zugriffsmodifikatoren, können wir die Kapselung auch in C #, C ++ und PHP verwenden. Der Vorteil von Eigenschaften besteht darin, dass die Benutzer das Objekt aus Sicht der internen Daten unter Verwendung eines einzelnen benannten Elements bearbeiten können, in dem Daten und Funktionen definiert sind.

Empfohlene Artikel

Dies ist eine Anleitung zur Kapselung in C. Hier diskutieren wir die Einführung und Notwendigkeit der Kapselung in C zusammen mit Advantage und Beispielen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Abstraktion gegen Verkapselung
  2. Kapselung in Python
  3. Kapselung in Java
  4. Kapselung in PHP
  5. Funktionsweise der Kapselung in JavaScript
  6. Kapselung in JavaScript