1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Unterschied zwischen Sichtbarkeit und Gültigkeit der Variablen in JAVA

  • freakjan
  • 28. Dezember 2005 um 14:25
  • Unerledigt
  • freakjan
    7
    freakjan
    Mitglied
    Punkte
    450
    Beiträge
    64
    • 28. Dezember 2005 um 14:25
    • #1

    Hallo,

    ich hab das zwar verstanden was Sichtbarkeit und Gültigkeit der Variablen in JAVA bedeuten aber für mich sind die beide GLEICH??
    Wenn gültig dann sichtbar und wenn sichtbar dann gültig :p

    Wenn mir jem einen Gegenbeispiel zeigen könnte, wäre ich sehr dankbar :thumb:

    Danke :thumb:
    ciao :zwinker:

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 28. Dezember 2005 um 20:46
    • #2

    hier ein Beispiel fuer eine Variable, die meiner Meinung nach gueltig, aber nicht sichtbar ist:

    Code
    class Life{
      private String meaning;
    }
    
    
    public class Test {
    
      public static void main(String[] args) {
        Life life = new Life(); // [1]
        System.out.println(life.meaning); // [2]
      }
    }
    Alles anzeigen

    Die variable 'meaning' ist nach dem aufruf [1] solange gueltig, solange eine referenz auf das object, das mit 'new Life()' erzeugt wurde, existiert. Sie kann aber in [2] nicht angesprochen werden, da sie von aussen nicht sichtbar ist.

    lg, Benjamin Ferrari, bookworm.at

  • freakjan
    7
    freakjan
    Mitglied
    Punkte
    450
    Beiträge
    64
    • 29. Dezember 2005 um 00:17
    • #3

    danke für die Antwort aber hab nicht viel verstanden, weil ich mit den Begriffen nichts anfangen kann :shinner: :confused: :ahhh: :face_with_rolling_eyes:

    Zitat von a9bejo

    ....
    Die variable 'meaning' ist nach dem aufruf [1] solange gueltig, solange eine referenz auf das object, das mit 'new Life()' erzeugt wurde, existiert. Sie kann aber in [2] nicht angesprochen werden, da sie von aussen nicht sichtbar ist.

    Danke :thumb:
    ciao :zwinker:

  • Nachhilfe
    3
    Nachhilfe
    Mitglied
    Punkte
    65
    Beiträge
    13
    • 29. Dezember 2005 um 10:36
    • #4

    Irgendwo habe ich in diesem Zusammenhang einmal etwas von "nicht initialisierten Variablen" gehört.

    z.b.:

    Code
    1:  int i;
    2:  i = i + 1;
    3:  i = 4;
    4:  i = i + 1;


    in Zeile 2 ist die Variable sichtbar aber nicht gültig, da sie noch nicht initialisiert wurde (Initialisierung = erstmalige Wertzuweisung an eine Variable).
    in Zeile 4 ist sie sichtbar und gültig (aber ein Programm, welches diese Codezeilen beinhaltet würde natürlich nicht kompilieren)

  • freakjan
    7
    freakjan
    Mitglied
    Punkte
    450
    Beiträge
    64
    • 29. Dezember 2005 um 12:42
    • #5

    WwoowW .. besser kann man das nicht erklären :thumb: :thumb: :thumb: DANKE!
    mmhhh... das mit der Gültigkeit hab ich jetzt Supi verstanden aber wann wäre dann eine Variable UNSICHTBAR?? ... oder gibts das gar nicht? :grinning_squinting_face:

    Danke :thumb:
    ciao :zwinker:

  • Wings-of-Glory
    28
    Wings-of-Glory
    Mitglied
    Reaktionen
    105
    Punkte
    8.305
    Beiträge
    1.573
    • 29. Dezember 2005 um 15:07
    • #6

    in einem {}-block definierte variable wäre nur innerhalb des blocks "sichtbar"

    PHP
    public void fubar () { 
     int x =0;
     {
        int y=1;
     }
      System.out.println(x);
      System.out.println(y); /** geht nicht, weil y nur innerhalb der {} sichtbar ist. **/
    }

    2. beispiel

    PHP
    public void fubar () { 
     int x =0;
    for (int i=0;i<2;i++)
     {
        int y=i;
     }
      System.out.println(x);
      System.out.println(y); /** geht nicht, weil y nur innerhalb der {} sichtbar ist. **/
    }

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • KeinWunder
    7
    KeinWunder
    Mitglied
    Punkte
    490
    Beiträge
    90
    • 29. Dezember 2005 um 16:21
    • #7

    ich hab noch eine Variante:

    Code
    public class Foo {
      private int x = 0;
     
      public void test() {
        int x = 99;
        System.out.println(x);
      }
    }



    Ausgabe: 99
    Die Klassenvariable x ist in der Methode test gültig aber nicht sichtbar, sie wird von der lokalen Variable x überdeckt.

    Four stages of acceptance:
    1.) this is worthless nonsense
    2.) this is interesting, but perverse, point of view
    3.) this is true, but quite unimportant
    4.) I alwas said so
    J.B.S. Haldane

  • freakjan
    7
    freakjan
    Mitglied
    Punkte
    450
    Beiträge
    64
    • 3. Januar 2006 um 12:53
    • #8

    vielen Dank :thumb: :thumb: :thumb:
    Hab das jetzt verstanden, was Gültigkeit und Sichtbarkeit bedeuten!

    Danke :thumb:
    ciao :zwinker:

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 2 Besucher

Rechtliches

Impressum

Datenschutzerklärung