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.
Objektorientierte Programmierung steht auf drei Säulen seines Universums:
Verkapselung (Programmierung) istVerwendung von Zugriffsmodifizierern, um Teile des Programmcodes vor dem Endbenutzer zu verbergen. Darunter steht wiederum der Entwickler oder das erbende Objekt.
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.
In C # ("C Sharp") gibt es zusätzlich zu den angegebenen (außer letzteres) noch solche Modifikatoren:
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.
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.
Encapsulation ist eine Möglichkeit, den Codierungsprozess zu vereinfachen. Zahlreiche Codezeilen bleiben "hinter den Kulissen", und im Hauptunterricht geht es um Instanzen von Objekten.
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.
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.
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>