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 Kleinbuchstaben

    Zusä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


Anmelden zum Antworten