Announcement

Collapse
No announcement yet.

umgang mit klassen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • umgang mit klassen

    hallo leute,

    ich bin neu in diesem Forum und auch neu in der Welt des Programmierens. Mein Wissen eigne ich mir anhand eines Ppenbooks von Galileo an und glaube, den Sinn der OOP zu verstehen (bzw. verstehe ich es, wenn ich eine Klasse geschrieben habe und somit mit ihr umzugehen weiß). Allerdings bleibt mir eine Frage offen:

    Woher weiß ich, wie ich mit "fertigen" Klassen aus der Klassenbibliothek des .NET Frameworks umzugehen habe. Um meine Frage zu konkretisieren:
    Nehmen wir als Beispiel die Klassen DateTime, ConsoleKeyInfo und Random. Wenn ich z.B. das aktuelle Datum auslesen will, so brauche ich keine Instanz der Klasse DateTime anzugeben. Ich kann mir das Datum mittels

    Code:
    Console.WriteLine(DateTime.Now);
    Console.ReadLine();
    aufrufen lassen. Es ist also nicht erforderlich, dass ich ein Objekt von der Klasse DateTime erzeugen muss.

    Betrachten wir mal nun die Klasse ConsoleKeyInfo:

    Um mir die Taste anzeigen zu lassen, verwende ich folgenden Code:

    Code:
    ConsoleKeyInfo zeichen = Console.ReadKey(true);
    char taste = zeichen.KeyChar;
    Console.WriteLine(taste);
    Console.ReadLine();
    Auch hier muss ich keine Instanz von der Klasse erzeugen, um mein Ziel zu erreichen. Aber dann haben wir ja noch z.B. die Klasse Radom. Ich wollte mir mal eine Zufallszahl zwischen 50 und 100 anzeigen lassen und habe dafür folgenden Code verwendet:

    Code:
    Random zufallszahl = new Random();
    int zahl = zufallszahl.Next(50, 100);
    Console.WriteLine(zahl);
    Console.ReadLine();
    Hier muss ich eine Instanz erzeugen, da ich sonst nicht auf die Methode Next() zugreifen kann. Diese drei Klassen (DateTime, ConsoleKeyInfo, Random) muss ich verschieden behandeln (bei einigen eine Instanz erzeugen, der Variablen von CKI beispielsweise den eingelesenen Wert mittels der Methode ReadKey() zuordnen).

    Doch wie mache ich es in Klassen, die ich noch nicht in den Vorlesungen gehabt habe. Woher weiß ich, ob ich davon ein Objekt erzeugen muss und wie ich sie verwenden kann?

    Danke für eure Antworten

  • #2
    Hallo,

    zu Deinen Fragen gibt es natürlich viel zu sagen. Ich beschränke mich zunächst auf das Stichwort static - Auszug aus der Doku zu static (C#-Referenz):
    Mit dem static-Modifizierer kann ein statischer Member deklariert werden, der zum Typ selbst und nicht zu einem bestimmten Objekt gehört. Der static-Modifizierer kann bei Klassen, Feldern, Methoden, Eigenschaften, Operatoren, Ereignissen und Konstruktoren verwendet werden, jedoch nicht bei Indexern, Destruktoren oder Typen, die keine Klassen sind.
    Siehe auch Kapitel 5 des OpenBook.

    Ich hoffe, es führt Dich etwas weiter. Jürgen

    Übrigens sind DateTime und ConsoleKeyInfo keine Klassen, sondern Strukturen.

    Comment


    • #3
      Originally posted by Jürgen Thomas View Post
      Übrigens sind DateTime und ConsoleKeyInfo keine Klassen, sondern Strukturen.
      Ich danke dir, durch deinen Hinweis habe ich mich in der Hilfe von der C# Express Edition mit Strukturen beschäftigt. langsam aber sicher ergibt das alles einen Sinn. Das mit dem Modifizierer static wusste ich bereits, aber trotzdem danke.

      Schönen abend noch

      Comment

      Working...
      X