Encapsulation, häufig auch als Kapselung bezeichnet, ist ein zentrales Prinzip der objektorientierten Programmierung (OOP), das eine entscheidende Rolle spielt, wenn es um die Organisation und Strukturierung von Code geht. Ziel der Kapselung ist es, die einzelnen Komponenten einer Software in selbstständige, abgeschlossene Einheiten zu gliedern, um so Ordnung und Übersichtlichkeit im Programmcode zu bewahren.
Im Rahmen der objektorientierten Programmierung wird ein 'Objekt' als eine Einheit verstanden, die sowohl Daten (auch bekannt als Attribute oder Eigenschaften) als auch die dazugehörigen Funktionen (Methoden) umfasst. Durch das Prinzip der Encapsulation werden diese Daten und Methoden zu einem Paket zusammengefasst. Der Kerngedanke dabei ist, dass die internen Zustände eines Objekts von außen nicht direkt zugänglich sind. Vielmehr stellt das Objekt eine definierte Schnittstelle in Form öffentlicher Methoden zur Verfügung, durch welche die Interaktion mit den versteckten Daten reguliert wird. Solche Methoden werden als 'Accessor-' (Zugriffsmethoden) und 'Mutator-Methoden' (Änderungsmethoden) bezeichnet.
Encapsulation hat mehrere Vorteile:
Um Encapsulation in einer objektorientierten Sprache wie Java, C# oder Python umzusetzen, werden in der Regel Zugriffsmodifikatoren (public, private, protected) genutzt, um zu steuern, welche Teile des Objekts von außerhalb sichtbar und zugänglich sind. Meistens werden Attribute als 'private' gekennzeichnet, damit sie nicht direkt von außerhalb des Objekts modifiziert werden können. Öffentliche Methoden ('public') werden definiert, um den sicheren Zugriff auf jene privaten Daten zu gewähren.
Zusammenfassend kann gesagt werden, dass die Kapselung ein elementares Prinzip ist, das die Grundlage für saubere, organisierte und robuste Softwareentwicklung innerhalb des Paradigmas der objekorientierten Programmierung bildet.