Site-Suche

Verkapselung ist was? Kapselung bei der Programmierung

Verkapselung ist eine der drei wichtigstenMerkmale der objektorientierten Programmierung (OOP). Die anderen beiden sind Polymorphie und Vererbung. Zusammen bilden sie die Basis der PLO, die mit diesen drei Prinzipien die ganze Bandbreite an Möglichkeiten zum Schreiben von Programmen in verschiedenen Sprachen bestimmt. Objektorientierte Sprachen wiederum müssen diesen klar folgen.

Verkapselung ist

OOP Grundlagen

Objektorientierte Programmierung steht auf drei Säulen seines Universums:

  • Polymorphismus, der auf die Frage eingeht, wie eine bestimmte Programmiersprache Objekte behandelt, die eine Beziehung zueinander haben, in ähnlicher Weise.
  • Vererbung, die eine Antwort gibt, wie die Stimulation der Verwendung des Codes wiederholt auftritt.
  • Encapsulation, das ist die Antwort auf die Frage, wie die Implementierung verborgen ist und somit die Integrität der Daten erhalten bleibt.

Terminologie

Verkapselung (Programmierung) istVerwendung von Zugriffsmodifizierern, um Teile des Programmcodes vor dem Endbenutzer zu verbergen. Darunter steht wiederum der Entwickler oder das erbende Objekt.

Konzepte der Kapselung

Das Wesen des Begriffs der „Verkapselung“

Die Definition definiert das unter EinkapselungEs beinhaltet die Verschleierung des gesamten oder eines Teils des Programmcodes. Das Wesen des Konzepts der "Kapselung" ist die Manipulation von Zugriffsmodifizierern. Dies bedeutet, dass der Entwickler selbst entscheidet, welche Eigenschaften, Methoden und Klassen für die Client-Klasse geöffnet werden und welche ausgeblendet werden.

Zugriffsmodifikatoren

Kapselungsprogrammierung
Es gibt solche Zugriffsmodifizierer, die unter anderem die Kapselung manipulieren können (Java-Programmierung):

  • öffentlich (öffentlich - öffentlich, offen, Zugang) - gemeinsamer Zugriff sowohl für aktuelle Objekte und Klassen als auch für die Außenwelt;
  • privat ("privat" - privater, privater, versteckter Zugang) - privater Zugang, dessen Wesen dem vorherigen vollkommen entgegengesetzt ist. Bietet nur Zugriff von der aktuellen Klasse;
  • geschützt (geschützt, halb verborgen, Zugang) - Zugang für die aktuelle Klasse und ihre Derivate;
  • Standardmäßig bedeutet ein nicht näher bezeichneter Zugriffsmodifikator, dass das Feld / die Methode für das gesamte aktuelle Klassenpaket sichtbar ist.

In C # ("C Sharp") gibt es zusätzlich zu den angegebenen (außer letzteres) noch solche Modifikatoren:

  • intern (intern) - Zugänglichkeit in der aktuellen Sammlung, geschlossener Zugang für alle anderen Fälle;
  • Intern geschützt ("Internal Protected Access") - die Kombination zweier Modifikatoren zu einem, in dem sich die Eigenschaften beider manifestieren.

Rolle der Verkapselung

Der Mechanismus der Kapselung ermöglicht es Ihnen, externe Einflüsse auf den Programmcode und die falsche Verwendung der darin eingebetteten Daten auszuschließen. Dies geschieht durch Kombination des Codes und der Daten in einem.

Einkapselungs-Programmierbeispiel

Objekt und Kapselung

Integration der Implementierung des Softwaremoduls undDaten, die bei der Programmierung in den Code eingebettet sind, werden als Objekt bezeichnet. Das Wesen seiner Verbindung mit der Verkapselung liegt in der Tatsache, dass es diese Technik ist, die es erlaubt, die Integrität des betreffenden Mechanismus zu erhalten und zu gewährleisten.

Vorteil der Verkapselung

Encapsulation ist eine Möglichkeit, den Codierungsprozess zu vereinfachen. Zahlreiche Codezeilen bleiben "hinter den Kulissen", und im Hauptunterricht geht es um Instanzen von Objekten.

Die Idee des Datenschutzes

Verkapselung ist auch ein Mechanismus, derrealisiert die Idee des Datenschutzes. Die Programmlogik der objektorientierten Programmierung basiert auf der Tatsache, dass die meisten Daten durch den Zugriffsmodifikator privat (privat, privat) oder geschützt (geschützt) verborgen werden. Die externe Welt, der Client kann versehentlich oder absichtlich die Implementierung des Softwaremoduls nicht beschädigen. Da es in der Tat sehr einfach ist, dies sogar absichtlich zu tun, ist die Verkapselung ein sehr gutes Prinzip.

Einheiten der Verkapselung

Klasse, als Grundeinheit der Verkapselung,beschreibt die Daten und enthält den Code, der mit diesen Daten arbeiten kann. Es ist auch die Basis für das Konstruieren eines Objekts. Letzteres wird wiederum als Instanz der Klasse dargestellt.

Kapselungsprogrammierung Java
Die folgende Terminologie wird ebenfalls verwendet:

  • Mitglieder sind der Code und die Daten, die in der Klasse enthalten sind;
  • Felder oder Instanzvariablen - die sogenannten Daten, die die Klasse definieren;
  • Mitgliederfunktionen - sie enthalten den Code selbst. Mitgliedsfunktionen sind ein generischer Name. Ein besonderer Fall sind Methoden.

Einkapselung an einem konkreten Beispiel

Kapselungsprogrammierung ist

Kapselung (Programmierung) Beispiel:

* Hinweis:

Beschreibung ist eine Beschreibung der Methode / Eigenschaft / Variable, das heißt, kommentieren, was tatsächlich im Programm passiert. Demonstriert mit öffnenden / schließenden Tags

Verwenden von System;

Namensraum OOPLibrary.Auto

{

///

/// Diese Klasse soll die Eigenschaften und Aktionen eines Autos beschreiben

///

öffentliche Klasse Auto

{

///

/// Eine Variable, die erstellt wurde, um darauf zu schreiben, wie alt ist das Auto, da der externe Eingriff in diese Eigenschaft vom Entwickler als überflüssig erachtet wird

/// es ist mit dem Modifikator privat, das heißt privat, privat markiert (siehe Beschreibung oben).

///

private int _age;

///

/// Boolesche Variable (nur zwei mögliche Werte - ja oder nein), die beschreibt, ob sich das Fahrzeug gerade bewegt

/// Es sollte auch nicht für den Endnutzer offen sein, wer auch immer er ist. Daher wird dieser Variable ein privater Zugriffsmodifikator "privat" zugewiesen.

///

private bool _isMoving;

///

/// Diese String-Variable muss Informationen über die Farbe des Autos enthalten. Es kann Veränderungen von äußeren Einflüssen unterliegen

/// weil der öffentliche Zugriffsmodifikator "public" für die Farbe ausgewählt wurde.

///

öffentliche Zeichenfolge Farbe;

///

/// In diesem speziellen Fall nehmen wir an, dass der Name des Autos auch geändert werden kann

/// weist einen öffentlichen Modifikator zu (öffentlicher Zugriff für alle, unabhängig von Klasse oder Assembly).

///

öffentliche Zeichenkette Name;

///

/// Der Klassenkonstruktor wird geöffnet, und alle Eigenschaften, die durch Variablen ausgedrückt und zuvor angegeben wurden, erhalten ihre Werte

///

öffentliches Auto ()

{

_age = 5;

_isMoving = falsch;

Farbe = "Lila";

Name = "Skoda Octavia";

}

///

/// Die Methode implementiert den Rückgabewert des Alters von auto. Warum ist es notwendig?

/// Der private Zugriffsmodifizierer ermöglicht dem Client keine Änderung.

///

/// Gibt das Alter des Autos zurück.

öffentliche Zeichenkette GetAge ()

{

return "Im Moment ist die ausgewählte Maschine" + _age + "Jahre alt.";

}

///

/// Wenn sich das Auto nicht bewegt, diese Methodeerkennt den Beginn der Bewegung. Es wird eine Überprüfung der Variablen durchgeführt, die den Zustand des Fahrzeugs angibt (ob es fährt oder nicht), und abhängig von den Ergebnissen wird die entsprechende Aktion ausgeführt / eine entsprechende Nachricht wird angezeigt.

///

public void Start ()

{

if (_isMoving)

{

Console.WriteLine ("Die Bewegung wurde bereits gestartet");

}

sonst

{

_isMoving = wahr;

Console.WriteLine ("Um zu beginnen, Aufmerksamkeit .. Vorwärts! Lass uns gehen!");

}

}

///

/// Wurde die Bewegung gestartet, stoppt diese Methode sie. Dieselbe Programmierlogik wie im vorherigen Fall.

///

öffentlicher Void Stop ()

{

if (_isMoving)

{

_isMoving = falsch;

Console.WriteLine ("Stop, machine");

}

sonst

{

Console.WriteLine ("Fehler: das Auto ist bereits vorhanden, bewegt sich nicht");

}

}

///

/// Bei einer Fahrzeugbewegung nach links abbiegen

///

public void MoveLeft ()

{

if (_isMoving)

{

Console.WriteLine ("Nach links gedreht");

}

sonst

{

Console.WriteLine ("Fehler: Das Auto ist stationär, die Rotationsfunktion ist derzeit nicht verfügbar");

}

}

///

/// Ähnliche Methode mit Drehung nach rechts

///

public void MoveRight ()

{

if (_isMoving)

{

Console.WriteLine ("Rechts abbiegen war erfolgreich");

}

sonst

{

Console.WriteLine ("Fehler: Das Auto hat sich noch nicht bewegt." Eine Rechtsdrehung ist derzeit eine unmögliche Aktion. ");

}

}

}

}

</ p>
  • Bewertung: