DMW007 (17.01.2014)
-
17.01.2014, 23:23 #1
- Registriert seit
- 01.12.2011
- Beiträge
- 135
Thanked 75 Times in 53 Posts...............
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)
-
17.01.2014, 23:31 #2
AW: C# Klassen- und Instanzmethoden?
Versuch das mal zu kompillieren.
Java:
Spoiler:
Lustige Quotes:
Spoiler:
-
17.01.2014, 23:37 #3
- Registriert seit
- 01.12.2011
- Beiträge
- 135
Thanked 75 Times in 53 PostsAW: 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önnenGeändert von Gast78236 (24.10.2014 um 12:18 Uhr)
-
17.01.2014, 23:41 #4
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:
-
The Following User Says Thank You to Sky.NET For This Useful Post:
-
18.01.2014, 02:30 #5
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);
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.
-
The Following User Says Thank You to Nuebel For This Useful Post:
Sky.NET (18.01.2014)
Ähnliche Themen
-
definition von Klassen , Objekten und etc.?
Von Silidor im Forum JavaAntworten: 32Letzter Beitrag: 18.06.2013, 22:46 -
[MW3] Eure Klassen
Von BMG im Forum Call of DutyAntworten: 4Letzter Beitrag: 29.05.2012, 16:56 -
Alpa Gun - Meister aller Klassen.
Von OneWorld im Forum Musik ♫Antworten: 4Letzter Beitrag: 28.02.2012, 21:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.