Kursinhalt
C# Über die Grundlagen Hinaus
C# Über die Grundlagen Hinaus
Kapselung
Kapselung ist im Wesentlichen nur eine Methode der Datenorganisation. Es beinhaltet die Organisation von Daten und Methoden in Form von Klassen, sodass das gesamte Programm im Wesentlichen nur auf Klassen basiert und die Daten und Methoden innerhalb dieser Klassen gekapselt sind. Diese Kapselung bietet eine Möglichkeit, den Zugriff auf den internen Zustand eines Objekts zu kontrollieren, was Modularität, Wartbarkeit und Sicherheit in einem Softwaresystem fördert.
Bei der Kapselung verwenden wir Zugriffsmodifikatoren wie public
, private
und protected
, um die meisten Felder und Methoden einer Klasse zu verbergen und nur diejenigen offenzulegen, die von außen verwendet werden müssen.
Da die meisten Daten außerhalb der Klasse direkt nicht zugänglich sind, verwenden wir Getter und Setter, um auf die Daten zuzugreifen oder sie zu ändern.
Ein gutes Beispiel ist eine Customer
-Klasse, die den Kunden einer Bank definiert:
index
public 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 modifizierbar. Stattdessen verwenden wir Methoden wie Deposit
und Withdraw
, um den Wert bei Bedarf zu ändern. Ebenso verwenden wir die Methode getBalance
, um auf den Wert des Kontostands zuzugreifen.
Die Verwendung des public
Schlüsselworts wird im Allgemeinen vermieden, es sei denn, es ist notwendig.
1. Welche Rolle spielen Zugriffsmodifikatoren bei der Kapselung in C#?
2. Welcher der folgenden Formatspezifizierer sollte minimal verwendet werden, um Kapselung sicherzustellen?
Danke für Ihr Feedback!