C# Klassen & Objekte: Fundamente für robustes OOP
C# Klassen & Objekte: Fundamente für robustes OOP
In diesem Tutorial lernen Sie das Konzept von Klassen und Objekten in C# anhand von Beispielen kennen.
C# ist eine objektorientierte Sprache, die Anwendungen um Objekte strukturiert. In der OOP lösen wir komplexe Probleme, indem wir sie in wiederverwendbare, in sich geschlossene Objekte aufteilen.
Um mit Objekten zu arbeiten, müssen wir folgende Aktivitäten ausführen:
- Eine Klasse erstellen
- Objekte aus dieser Klasse instanziieren
C# Klasse
Eine Klasse ist der Bauplan für ein Objekt. Denken Sie an einen Hausplan: Er definiert Räume, Türen, Fenster und strukturelle Regeln. Ein tatsächliches Haus, das nach diesem Plan gebaut wird, ist ein Objekt.
Mehrere Häuser können denselben Plan teilen, genauso wie viele Objekte aus derselben Klasse erstellt werden können.
Klasse in C# erstellen
class ClassName { }
Hier haben wir eine Klasse namens ClassName definiert. Eine Klasse kann enthalten:
- Felder – Variablen, die Daten halten
- Methoden – Funktionen, die Aktionen ausführen
Beispiel:
class Dog {
// Feld
string breed;
// Methode
public void Bark() {
// Implementierung
}
}
Im obigen Beispiel:
- Dog – Klassenname
- breed – Feld
- Bark() – Methode
Hinweis: In C# umfassen Klassenmember sowohl Felder als auch Methoden.
C# Objekte
Ein Objekt ist eine Instanz einer Klasse. Zum Beispiel kann die Klasse Dog Objekte wie Bulldogge, Deutscher Schäferhund oder Mops erzeugen.
Objekt einer Klasse erstellen
ClassName obj = new ClassName();
Hier erstellt new ein Objekt; obj ist sein Name. Zum Beispiel:
Dog bullDog = new Dog();
Das bullDog Objekt kann nun auf die in Dog definierten Felder und Methoden zugreifen.
Auf Klassenmember über ein Objekt zugreifen
Mit dem Punktoperator (.) auf Member zugreifen:
using System;
namespace ClassObject {
class Dog {
string breed;
public void Bark() {
Console.WriteLine("Bark Bark !!");
}
static void Main(string[] args) {
// Dog Objekt erstellen
Dog bullDog = new Dog();
// Rasse setzen
bullDog.breed = "Bull Dog";
Console.WriteLine(bullDog.breed);
// Methode aufrufen
bullDog.Bark();
Console.ReadLine();
}
}
}
Ausgabe
Bull Dog Bark Bark !!
Beachten Sie die Verwendung von bullDog und dem Punktoperator zum Zugriff auf breed und Bark().
Mehrere Objekte einer Klasse erstellen
Instanziieren Sie mehrere Objekte aus derselben Klasse, jeweils mit eigenen Daten:
using System;
namespace ClassObject {
class Employee {
string department;
static void Main(string[] args) {
// erster Mitarbeiter
Employee sheeran = new Employee();
sheeran.department = "Development";
Console.WriteLine("Sheeran: " + sheeran.department);
// zweiter Mitarbeiter
Employee taylor = new Employee();
taylor.department = "Content Writing";
Console.WriteLine("Taylor: " + taylor.department);
Console.ReadLine();
}
}
}
Ausgabe
Sheeran: Development Taylor: Content Writing
Jedes Objekt hält seinen eigenen department Wert.
Objekte in einer anderen Klasse erstellen
Objekte können in anderen Klassen erstellt werden. Beispiel:
using System;
namespace ClassObject {
class Employee {
public string name;
public void Work(string work) {
Console.WriteLine("Work: " + work);
}
}
class EmployeeDrive {
static void Main(string[] args) {
// Employee Objekt erstellen
Employee e1 = new Employee();
Console.WriteLine("Employee 1");
// Name setzen
e1.name = "Gloria";
Console.WriteLine("Name: " + e1.name);
// Methode aufrufen
e1.Work("Coding");
Console.ReadLine();
}
}
}
Ausgabe
Employee 1 Name: Gloria Work: Coding
Hier erstellt EmployeeDrive ein Employee Objekt. Öffentliche Member erlauben den klassenübergreifenden Zugriff. Mehr zu Zugriffsmodifizierern in den offiziellen Docs.
Warum Objekte und Klassen?
Klassen und Objekte ermöglichen modulare Designs. Für ein Spiel mit vielen Gegnern kann eine einzelne Enemy Klasse health, ammo, Shoot() und Run() definieren. Jede Gegnerinstanz behält dann ihren eigenen Zustand bei, während sie Verhalten teilt.
Indem wir Code um Objekte modellieren, reduzieren wir Komplexität, verbessern Wartbarkeit und fördern Wiederverwendbarkeit.
C Sprache
- C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
- C# Partielle Klassen und Methoden verstehen
- Versiegelte Klassen und Methoden in C# meistern
- C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung
- C++ Friend-Funktionen und Friend-Klassen: Zugriffskontrolle meistern
- Python Objektorientierte Programmierung meistern: Klassen, Vererbung, Kapselung & Polymorphie
- Java Klassen und Objekte: Praktischer Leitfaden
- Java abstrakte Klassen und Methoden: Ein umfassender Leitfaden
- Java verschachtelte und innere Klassen meistern: Typen, Beispiele und Best Practices
- Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung