1. #1

    Registriert seit
    01.12.2011
    Beiträge
    135
    Thanked 75 Times in 53 Posts

    Standard ...............

    Hallo Leute,

    leider ist mir der Unterschied zwischen Klassen- und Instanzmethoden immer noch nicht eindeutig. Ich bin mir immer unsicher, wie ich was erstelle. Ich hoffe, ihr könnt mich bei der Definition und beim Erstellen etwas ergänzen oder mir dazu Tipps geben.

    Als erstes stelle ich mir die Frage, ob die Methode etwas zurückgeben soll. Dies ist ja bei beiden Methodenarten möglich. Falls ja, gebe ich beim Erstellen der Methode einen Datentyp wie z.B. int mit an.

    Dann frage ich mich, ob ich auf eine Klasse oder ein Objekt zugreifen möchte:
    Klassenmethoden: static oder static void mit hinzu.
    Instanzmethoden: void oder gar nichts beifügen.

    Soweit das grobe Grundgerüst......


    //Klassenmethoden
    class Helpers
    {
    public static void zeigeTitel(string titel){ Console.Title = titel; }
    public static double quadrat(int wert){return wert*=wert;}
    }
    //Ausführung der Klassenmethoden in der Klasse Program:
    Helpers.zeigeTitel("Beispiel");
    double wert = Helpers.quadrat(5);

    //Instanzmethode
    class Helpers
    {
    int preis = 3;
    public int berechnePreis(int wert) {return preis*=wert;}
    public void print(){}
    }
    //Ausführung der Instanzmethode in der Klasse Program:
    double neuerPreus = Helpers.berechnePreis(3);
    Objekt.print();


    Ist das alles so korrekt?

    Konstruktoren und Überladungen sind mir soweit eigentlich recht geläufig. Ich kann mich anfangs nur immer schlecht entscheien, welche Methodenart ich verwende..

    Lieben Gruß
    Geändert von Gast78236 (24.10.2014 um 12:17 Uhr)

  2. #2
    Avatar von Sky.NET
    Registriert seit
    26.11.2011
    Beiträge
    2.462
    Thanked 2.717 Times in 1.286 Posts
    Blog Entries
    7

    Standard AW: C# Klassen- und Instanzmethoden?

    Versuch das mal zu kompillieren.
    Java:
    Spoiler:

    Lustige Quotes:
    Spoiler:
    Zitat Zitat von Hydra Beitrag anzeigen
    Hier (in Deutschland) kann man keine andere tolle Aktivitäten machen, als zu chillen, shoppen, saufen und Partys feiern xD Ich habe nichts gegen ab und zu mal saufen und Partys feiern, aber das ist doch nicht wirklich das wahre Leben o_o
    Wieso das Internet für die meisten Leute gefährlich ist:
    Zitat Zitat von Silent Beitrag anzeigen
    Ich weiß ja nicht was der Sinn dahinter steckt es heißt immer "security reasons".

  3. #3

    Registriert seit
    01.12.2011
    Beiträge
    135
    Thanked 75 Times in 53 Posts

    Standard AW: C# Klassen- und Instanzmethoden?

    Klar, mit Compiler bekomme ich das meistens auch hin. : )

    Nur schreibe ich bald die Prüfung für "Grundlagen Software-Entwicklung", die wir leider nicht auf elektronischen Wege bewältigen können
    Geändert von Gast78236 (24.10.2014 um 12:18 Uhr)

  4. #4
    Avatar von Sky.NET
    Registriert seit
    26.11.2011
    Beiträge
    2.462
    Thanked 2.717 Times in 1.286 Posts
    Blog Entries
    7

    Standard AW: C# Klassen- und Instanzmethoden?

    Das was du da oben hingeschrieben hast, wird nicht kompillieren.
    Wie willst du denn etwas lernen, wenn du dich nicht durch ausprobieren eingehend damit beschäftigst?
    Lernen besteht nicht nur aus Theorie, sondern die Theorie erklärt sich meistens in der Praxis ziemlich einfach von selbst.

    Wenn du hier ein kompilierbares Beispiel postest, werde ich dir gerne den Unterschied zwischen den beiden erklären.
    Wenn du allerdings in deiner Klassenarbeit derartigen Code schreiben wirst, gibt das keine Punkte für die entsprechende Aufgabe, völlig egal ob du die Aufgabe an sich verstanden hast.
    In meiner Ausbildung habe ich schon Punktabzug für fehlende Semikolons bekommen und in deinem Beispiel fehlen 2 davon.
    Java:
    Spoiler:

    Lustige Quotes:
    Spoiler:
    Zitat Zitat von Hydra Beitrag anzeigen
    Hier (in Deutschland) kann man keine andere tolle Aktivitäten machen, als zu chillen, shoppen, saufen und Partys feiern xD Ich habe nichts gegen ab und zu mal saufen und Partys feiern, aber das ist doch nicht wirklich das wahre Leben o_o
    Wieso das Internet für die meisten Leute gefährlich ist:
    Zitat Zitat von Silent Beitrag anzeigen
    Ich weiß ja nicht was der Sinn dahinter steckt es heißt immer "security reasons".

  5. The Following User Says Thank You to Sky.NET For This Useful Post:

    DMW007 (17.01.2014)

  6. #5
    Avatar von Nuebel
    Registriert seit
    23.11.2013
    Beiträge
    446
    Thanked 361 Times in 236 Posts

    Standard AW: C# Klassen- und Instanzmethoden?


    //Ausführung der Klassenmethoden in der Klasse Program:
    Helpers.zeigeTitel("Beispiel");

    //Ausführung der Instanzmethode in der Klasse Program:
    double neuerPreus = Helpers.berechnePreis(3);
    Deinem Aufruf zufolge könnte man meinen, es handelt sich in beiden Fällen um Klassenmethoden.

    Instanzmethoden werden auf konkrete Objekte/Instanzen aufgerufen. (Der irreführende Name ließe ja auch andere Schlussfolgerungen zu ). Klassenmethoden leben auf Klassen-Ebene. Statische Elemente einer Klasse sind einmal im Speicher vertreten, nicht-statische pro Instanz.

    In deinem - wenn auch nicht kompilierbaren - Codeausschnitt hast du bereits einen Begriff eingeführt: "Helper". Einige Programmierer bevorzugen auch "Utilities". Ein (oder mehrere) Sammeltopf für allen statischen Hilfskram. All das, was man nicht wirklich einer Klasse zuordnen kann (oder will, weil man in OOAD 'ne Pfeife ist), und/oder von vielen anderen Klassen gebraucht wird, kann man dort vorfinden.

    Um auf dein Beispiel kurz zurückzukommen: Etwas wie "berechnePreis", also Business-Methoden, sollte man nicht statisch machen. Sowas kommt als Instanzmethode in einer Klasse - wenn man bei deutsch bleiben will - "Rechnung" o.ä.

    Ein Beispiel für eine Methode, die imo zweifellos statisch sein darf, ist etwas wie "printFormatted". Keine Business-Logik, sondern kleine Helfer.

  7. The Following User Says Thank You to Nuebel For This Useful Post:

    Sky.NET (18.01.2014)

Ähnliche Themen

  1. Antworten: 32
    Letzter Beitrag: 18.06.2013, 22:46
  2. [MW3] Eure Klassen
    Von BMG im Forum Call of Duty
    Antworten: 4
    Letzter Beitrag: 29.05.2012, 16:56
  3. Alpa Gun - Meister aller Klassen.
    Von OneWorld im Forum Musik ♫
    Antworten: 4
    Letzter Beitrag: 28.02.2012, 21:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.