Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C# Klassen: Blueprint für objektorientierte Programmierung

Klasse definieren

Bauplan für Objekte. Sie kapselt Daten (Felder/Properties) und Verhalten (Methoden).

<Zugriff> class Klassenname
{
    // Felder (Member-Variablen)
    <Zugriff> <Typ> feld1;
    <Zugriff> <Typ> feld2;

    // Methoden
    <Zugriff> <Rückgabetyp> Methode1(Parameter) { ... }
    <Zugriff> <Rückgabetyp> Methode2(Parameter) { ... }
}
  • Default-Zugriff für Klasse: internal
  • Default-Zugriff für Member: private
  • Zugriff auf Member über Punktsyntax: obj.Member

Beispiel: Box-Klasse

public class Box
{
    public double Length;
    public double Breadth;
    public double Height;
}

// Nutzung
Box box1 = new Box();
box1.Length = 6.0;
box1.Breadth = 7.0;
box1.Height = 5.0;
double volume = box1.Length * box1.Breadth * box1.Height;

Kapselung mit Properties & Methoden

Felder private, Zugriff über öffentliche Methods/Properties:

public class Box
{
    private double length, breadth, height;

    public void SetLength(double len) => length = len;
    public void SetBreadth(double bre) => breadth = bre;
    public void SetHeight(double hei) => height = hei;

    public double GetVolume() => length * breadth * height;
}

Konstruktoren

Spezielle Methode zur Initialisierung beim Erzeugen (new). Name = Klassenname, kein Rückgabetyp.

Parameterloser Konstruktor

public class Line
{
    private double length;
    public Line() { Console.WriteLine("Objekt erstellt"); }
    public void SetLength(double len) => length = len;
    public double GetLength() => length;
}

Parameterisierter Konstruktor

public Line(double len)
{
    Console.WriteLine($"Objekt erstellt, Länge = {len}");
    length = len;
}

// Nutzung
Line line = new Line(10.0); // Länge direkt setzen

Destruktoren (Finalizer)

Wird vom Garbage Collector vor Freigabe des Speichers aufgerufen. Name: ~Klassenname, keine Parameter, kein Zugriffsmodifizierer.

~Line()
{
    Console.WriteLine("Objekt wird gelöscht");
}

Hinweis: In modernem C# meist überflüssig; IDisposable / using für deterministische Ressourcenfreigabe bevorzugen.

Statische Member (static)

Gehören zur Klasse, nicht zur Instanz. Eine Kopie pro AppDomain.

Statische Felder

public class Counter
{
    public static int Count = 0;
    public void Increment() => Count++;
}

// Nutzung
Counter c1 = new Counter(); c1.Increment();
Counter c2 = new Counter(); c2.Increment();
Console.WriteLine(Counter.Count); // 2 (gemeinsam)

Statische Methoden

Können nur auf statische Member zugreifen. Aufruf über Klassennamen:

public static int GetCount() => Count;

// Aufruf
int cnt = Counter.GetCount();

C Sprache

  1. C# Klassen & Objekte: Fundamente für robustes OOP
  2. C# Zugriffsmodifizierer verstehen: Public, Private, Protected, Internal und mehr
  3. C# Static Keyword: Statische Variablen, Methoden und Klassen meistern
  4. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  5. C# Geschachtelte Klassen verstehen: Definition, Verwendung und Vererbung
  6. C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung
  7. C-Speicherklassen verstehen: Gültigkeitsbereich, Lebensdauer & Verwendung
  8. C++ Speicherklassen: Scope, Lifetime & Verwendung
  9. C++ Interfaces: Abstrakte Klassen & Pure Virtual Functions
  10. C# Programmstruktur verstehen: Kernkomponenten & Beispiel