Menu
Coddy logo textTech

Statische Klassen

Teil des Abschnitts Objektorientierte Programmierung der C#-Journey von Coddy. Lektion 13 von 70.

Wenn eine Klasse nur statische Member enthält und Sie niemals Instanzen davon erstellen müssen, können Sie die gesamte Klasse als static deklarieren. Dies teilt dem Compiler mit, dass die Klasse nicht instanziiert werden kann und nur statische Member enthalten kann.

public static class MathHelper
{
    public static double Pi = 3.14159;
    
    public static int Square(int number)
    {
        return number * number;
    }
    
    public static int Add(int a, int b)
    {
        return a + b;
    }
}

Sie verwenden statische Klassen auf dieselbe Weise wie statische Member, indem Sie sie direkt über den Klassennamen aufrufen:

int result = MathHelper.Square(5);
double pi = MathHelper.Pi;

Statische Klassen haben wichtige Einschränkungen. Sie können keine Instanz mit new erstellen, sie können keine Instanzkonstruktoren haben und sie können nicht vererbt werden. Sie können nur statische Felder, Eigenschaften und Methoden enthalten.

Die Klassen Console und Math, die Sie verwendet haben, sind perfekte Beispiele für statische Klassen. Sie bieten Hilfsfunktionen, ohne einen Objektzustand zu benötigen. Statische Klassen sind ideal für die Gruppierung verwandter Hilfsmethoden oder Konstanten, die keine instanzspezifischen Daten erfordern.

challenge icon

Aufgabe

Einfach

Erstelle eine Dienstprogramm zur Temperaturumrechnung mithilfe einer statischen Klasse, um verwandte Hilfsmethoden zu gruppieren, die keinen Objektzustand benötigen.

Du erstellst zwei Dateien, um deinen Code zu organisieren:

  • TemperatureConverter.cs: Definiere eine statische Klasse namens TemperatureConverter im Namespace Utilities. Diese Klasse sollte Folgendes enthalten:
    • Ein statisches Feld AbsoluteZeroCelsius, das auf -273.15 gesetzt ist
    • Eine statische Methode CelsiusToFahrenheit(double celsius), die Celsius mithilfe der Formel (celsius * 9 / 5) + 32 in Fahrenheit umrechnet
    • Eine statische Methode FahrenheitToCelsius(double fahrenheit), die Fahrenheit mithilfe der Formel (fahrenheit - 32) * 5 / 9 in Celsius umrechnet
    • Eine statische Methode IsAboveAbsoluteZero(double celsius), die true zurückgibt, wenn die Temperatur über dem absoluten Nullpunkt liegt
  • Program.cs: Verwende in deiner Hauptdatei die statische Klasse, um Umrechnungen durchzuführen. Lies einen Temperaturwert in Celsius aus der Eingabe ein und gib anschließend die Umrechnungen und die Validierung aus.

Du erhältst eine Eingabe: einen Temperaturwert in Celsius.

Gib die Ergebnisse in diesem Format aus:

{celsius}C = {fahrenheit}F
{fahrenheit}F = {convertedBack}C
Above Absolute Zero: {True/False}
Absolute Zero: {AbsoluteZeroCelsius}C

Wenn die Eingabe beispielsweise 25 ist, sollte die Ausgabe wie folgt aussehen:

25C = 77F
77F = 25C
Above Absolute Zero: True
Absolute Zero: -273.15C

Denke daran, dass statische Klassen nicht instanziiert werden können – du rufst alle Methoden direkt über den Klassennamen auf, zum Beispiel TemperatureConverter.CelsiusToFahrenheit(25).

Probier es selbst

using System;
using Utilities;

class Program
{
    public static void Main(string[] args)
    {
        // Lies die Temperatur in Celsius ein
        double celsius = Convert.ToDouble(Console.ReadLine());
        
        // TODO: Verwende statische Methoden von TemperatureConverter, um:
        // 1. celsius in fahrenheit umzuwandeln
        // 2. fahrenheit zurück in celsius umzuwandeln
        // 3. Zu prüfen, ob die Temperatur über dem absoluten Nullpunkt liegt
        // 4. Die Konstante für den absoluten Nullpunkt abzurufen
        
        // TODO: Gib die Ergebnisse im erforderlichen Format aus:
        // {celsius}C = {fahrenheit}F
        // {fahrenheit}F = {convertedBack}C
        // Above Absolute Zero: {True/False}
        // Absolute Zero: {AbsoluteZeroCelsius}C
        
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-C#-Compiler