Kapselung
Kapselung ist im Wesentlichen eine Methode zur Datenorganisation. Dabei werden Daten und Methoden in Form von Klassen organisiert, sodass das gesamte Programm im Grunde auf Klassen basiert und die Daten sowie Methoden gekapselt innerhalb dieser Klassen liegen. Diese Kapselung ermöglicht es, den Zugriff auf den internen Zustand eines Objekts zu steuern, was die Modularität, Wartbarkeit und Sicherheit eines Softwaresystems fördert.
Bei der Kapselung werden Zugriffsmodifizierer wie public
, private
und protected
verwendet, um die meisten Felder und Methoden einer Klasse zu verbergen und nur diejenigen offenzulegen, die von außen genutzt werden sollen.
Da die meisten Daten außerhalb der Klasse nicht direkt zugänglich sind, werden Getter und Setter verwendet, um auf die Daten zuzugreifen oder sie zu verändern.
Ein gutes Beispiel ist eine Customer
-Klasse, die einen Bankkunden definiert:

index.cs
1234567891011121314151617181920212223242526272829303132public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
Im obigen Beispiel ist kein Feld direkt von außen zugänglich oder veränderbar. Stattdessen werden Methoden wie Deposit
und Withdraw
verwendet, um den Wert bei Bedarf zu ändern. Ebenso wird zur Abfrage des Kontostands die Methode getBalance
genutzt.
Die Verwendung des Schlüsselworts public
wird im Allgemeinen vermieden, sofern es nicht notwendig ist.
Zur Erinnerung: Wenn ein Feld von außerhalb der Klasse nicht zugänglich, aber von abgeleiteten Klassen erreichbar sein soll, kann der Zugriffsmodifizierer protected
verwendet werden.
1. Welche Rolle spielen Zugriffsmodifizierer bei der Kapselung in C#?
2. Welcher der folgenden Zugriffsspezifizierer sollte am wenigsten verwendet werden, um die Kapselung zu wahren?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 2.04
Kapselung
Swipe um das Menü anzuzeigen
Kapselung ist im Wesentlichen eine Methode zur Datenorganisation. Dabei werden Daten und Methoden in Form von Klassen organisiert, sodass das gesamte Programm im Grunde auf Klassen basiert und die Daten sowie Methoden gekapselt innerhalb dieser Klassen liegen. Diese Kapselung ermöglicht es, den Zugriff auf den internen Zustand eines Objekts zu steuern, was die Modularität, Wartbarkeit und Sicherheit eines Softwaresystems fördert.
Bei der Kapselung werden Zugriffsmodifizierer wie public
, private
und protected
verwendet, um die meisten Felder und Methoden einer Klasse zu verbergen und nur diejenigen offenzulegen, die von außen genutzt werden sollen.
Da die meisten Daten außerhalb der Klasse nicht direkt zugänglich sind, werden Getter und Setter verwendet, um auf die Daten zuzugreifen oder sie zu verändern.
Ein gutes Beispiel ist eine Customer
-Klasse, die einen Bankkunden definiert:

index.cs
1234567891011121314151617181920212223242526272829303132public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
Im obigen Beispiel ist kein Feld direkt von außen zugänglich oder veränderbar. Stattdessen werden Methoden wie Deposit
und Withdraw
verwendet, um den Wert bei Bedarf zu ändern. Ebenso wird zur Abfrage des Kontostands die Methode getBalance
genutzt.
Die Verwendung des Schlüsselworts public
wird im Allgemeinen vermieden, sofern es nicht notwendig ist.
Zur Erinnerung: Wenn ein Feld von außerhalb der Klasse nicht zugänglich, aber von abgeleiteten Klassen erreichbar sein soll, kann der Zugriffsmodifizierer protected
verwendet werden.
1. Welche Rolle spielen Zugriffsmodifizierer bei der Kapselung in C#?
2. Welcher der folgenden Zugriffsspezifizierer sollte am wenigsten verwendet werden, um die Kapselung zu wahren?
Danke für Ihr Feedback!