Einfache Frage zu Klassen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Einfache Frage zu Klassen

    Neu

    Hallo
    ich hab da mal eine Grundlegende Frage.
    Ich schreibe eine Klasse und definiere eine Variable = zahl
    Nun gibt es mehrer Möglichkeiten (A,B,C) dies Variable mit = 1 zu definieren
    Ich würde nur gerne mal verstehen was genau der Unterschied von A,B,C ist, oder ist das alles genau das Gleiche.
    Und wenn alles das Gleiche sein sollte, welches ist zu bevorzugen ?
    Gruß
    herrm_no

    Quellcode

    1. Public class MyClass{
    2. int zahl =1; //A
    3. public MyClass(){
    4. zahl=1; //B
    5. // oder
    6. this.zahl=1 //C
    7. }
    8. }
    Alles anzeigen
  • Neu

    zu a das ist eine globale variable des Typs int. Die ist in der gesamten Klasse sichtbar da sie im Klassen Rumpf und nicht in einer Methode definiert wird in einer Methode währe sie nur in der Methode sichtbar.
    Wenn in eine Methode auch eine variable mit gleichen Namen erstellt wird greifst du auf die lokale zu nicht auf die globale zu.

    C wird benutz um die in eine Methode übergebenen variablen in der lokalen oder globalen variable zu speichern.
    Bei mir eine globale
    1. int zahl; // global im Klassen rumpf
    2. public void MyClass(int zahl) //eine Methode in einer Klass
    3. this.zahl=zahl //C
    4. }


    B: Wenn das der Konstruktor sein soll dann ist B: eine lokale variable im konstrucktor und nur dort sichtbar.
    C macht in diesem Fall keinen Sinn ist das gleiche.
    Macht nur in meinen Beispiel Sinn. Also wenn ein wert übergeben wird. Und du das in eine andere variable mit gleichen nahmen speichern willst. im
    Ein Feedback auf Tipps ist auch schön. :P
  • Neu

    ok habe mir dein Beispiel noch mal an gesehen.
    Es ist eigentlich alles das gleiche.
    In A: erstellst du die globale variable und weist ihr gleich eigenen wert zu initialisierst sie also gleich.
    Bei B: bist du in einer Methode genauer im konstrucktor der Klasse und weist der selben variable einen Wert zu.
    Bei C: ist es das selbe wie in B . Würdest du der Methode einen int wert mit der variablen zahl übergeben wie in meinen Beispiel oben wir das es einen Simachen denn somit würdest du den übergebenen wert in der globalen variablen zahl speichern. This. Ist der Verweis zur Klasse in diesem Fall.

    Hoffe das es so klarer geworden Ist .
    Ein Feedback auf Tipps ist auch schön. :P