Anfängerfrage
-
Servus,
vorab: ich bin noch blutiger Anfänger. Ich komme nicht dahinter. Mein Problem:
Ich habe folgende Klasse geschrieben:public class mydate { private int Jahr=0; private int Monat=0; private int Tag=0; public void SetDatum(int _Jahr, int _Monat, int _Tag) { this.Jahr=_Jahr; this.Monat=_Monat; this.Tag=_Tag; } }
In meinem Programm möchte ich nun ein solches Objekt erstellen:
mydate datum; datum.SetDatum(2004, 06, 28);
Wenn ich dieses kompiliere bekomme ich eine Fehlermeldung:
variable datum might not have been initialized
Was läuft da falsch?
Vielen Dank für Tipps,
Karl
-
Im Sinne von Noob hilft Noob (is net bös gemeint
Du hast kein datum=new mydate(); stehen. also wurde da auch nix initialisiert.
Wenn's falsch is, beschwerden bitte an /dev/null *g*
__
Grüße, DennisB
-
Wenn's falsch is, beschwerden bitte an /dev/null *g*
Nicht nötig -> alles richtig erklärt.
Zusätzlich wäre noch anzumerken, dass du bei der Namensgebung das mit den Groß/Kleinbuchstaben genau verkehrt herum praktiziert hast.
Klassennamen beginnen mit einem Großbuchstaben
Variablennamen beginnen mit einem Kleinbuchstaben
Methodennamen beginnen mit einem KleinbuchstabenZusätzlich sollte man Variablennamen (und natürlich auch Parameternamen) nicht mit einem _ beginnen. schöner ist da, wenn man den selben Namen wie die Variable selbst verwendet und diese dann mithilfe von this. anspricht.
Mehrere Wörter in einem Begriff werden dann jeweils mit einem Großbuchstaben eingeleitet. (MyDate, setDate, ...)
Hier die 'verbesserte' Version:
public class MyDate { private int jahr = 0; private int monat = 0; private int tag = 0; public void setDatum(int jahr, int monat, int tag) { this.jahr = ahr; this.monat = monat; this.tag = tag; } }
Das steht auch alles so in den Java Code-Conventions und man sollte das eigentlich auch so verwenden. (http://java.sun.com/docs/codeconv/)
-
Danke für eure Hilfe.
Der Tipp mit den Code Conventions ist auch besonders interessant.
Das macht Sinn!Schönen Tag noch.
Karl