Unterschiede

Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.

start:info:11if:04_variablen 04.09.2008 20:03 start:info:11if:04_variablen 23.10.2013 10:12 aktuell
Zeile 1: Zeile 1:
====== Variablen ====== ====== Variablen ======
-FIXME+**In Java gibt es **4 Arten von Variablen**:** 
 + 
 +{{ :start:info:11if:schublade.jpg|Schublade}} 
 +  * Attribute (auch Instanzvariablen genannt) 
 + 
 +  * formale Parameter 
 + 
 +  * lokale Variablen 
 + 
 +  * Klassenvariablen (dazu später mehr) 
 + 
 +{{:start:info:11if:06var.gif|Arten von Variablen}} 
 + 
 +===== Gültigkeit von Variablen ===== 
 + 
 +Der **Gültigkeitsbereich** einer Variablen ist der Teil eines Programms, in dem auf die Variable zugegriffen werden kann - nur da kann ich also mit der Variablen arbeiten. 
 + 
 +  * **Instanzvariablen** (Attribute) werden üblicherweise als private deklariert; Sie sind deshalb nur in den Methodenrümpfen der eigenen Klasse gültig. 
 + 
 +  * Der Gültigkeitsbereich einer **lokalen Variable** erstreckt sich von ihrer Deklaration bis zum Ende des einschließenden Blocks. 
 + 
 +  * Der Gültigkeitsbereich eines **formalen Parameters** beschränkt sich auf den Rumpf des zugehörigen Blocks. 
 + 
 +**Instanzvariablen** (Attribute) können durch **lokale Variablen** und **formale Parameter** (der selben Klasse) mit gleichem Namen verdeckt werden. Dann kann auf die Attribute nur noch per ''this.''-Operator zugegriffen werden.\\ 
 + 
 +**Beispiel für Gültigkeitsbereiche**\\ 
 +{{:start:info:11if:06var2.gif|Beispiel für Gültigkeitsbereiche}} 
 + 
 +===== Lebensdauer von Variablen ===== 
 + 
 +Die **Lebensdauer von Variablen** ist die Zeit von der Erzeugung der Variablen bis zu dem Zeitpunkt, an dem sie im Speicher gelöscht wird. 
 + 
 +  * Die **Instanzvariablen** (Attribute) eines Objekts werden erzeugt, wenn das Objekt konstruiert wird. Diese Variable lebt bis der Speicherbereinigungsalgorithmus das Objekt beseitigt. 
 + 
 +  * Eine **lokale Variable** wird bei ihrer Deklaration erzeugt und lebt bis der einschließende Block verlassen wird. 
 + 
 +  * Ein **formaler Parameter** ist eine Art lokale Variable des Methoden- bzw. Konstruktorrumpfs. Er wird beim Aufruf der Methode bzw des Konstruktors erzeugt und nach Ausführung wieder gelöscht. 
 + 
 +**Initialisierung von Variablen** 
 + 
 +  * **Instanzvariablen** (Attribute) werden automatisch bei der Erzeugung mit einem Standardwert initialisiert (0 für Zahlen, false für den boolean-Typ und null für Objekttypen (wie String, Person etc.), falls der Initialwert nicht explizit spezifiziert wurde (im Konstruktor oder bei der Deklaration). 
 + 
 +  * **Parametervariablen** werden mit der lokalen Kopie der Werte der aktuellen Parameter initialisiert. 
 + 
 +  * **Lokale Variablen** müssen durch das Programm explizit initialisiert werden und dürfen/können vor der Initialisierung nicht benutzt werden. 
 + 
 +**Fragen** 
 +,,,,,, 
 +  - Es wird ein Objekt der Klasse Zaehler erzeugt. Welche Ausgabe liefert dann der Aufruf von main()?\\ <code java> 
 +public class Zaehler { 
 +    // Attribute 
 +    private int zaehlerstand; 
 +    private int x; 
 +    private int y; 
 + 
 +    // Konstruktor 
 +    public Zaehler() { zaehlerstand = 100; x = 3; y = 5; } 
 +    // Methoden 
 +      public 
 +      void 
 +      erhoeheZaehlerstand( 
 +      int 
 +      x) { zaehlerstand = zaehlerstand + x + y; System.out.println(zaehlerstand); zaehlerstand = zaehlerstand + 
 +      this 
 +      .x + 
 +      this 
 +      .y; System.out.println(zaehlerstand); y = 300; } 
 +      public 
 +      void 
 +      erhoeheNochEinmalZaehlerstand( 
 +      int 
 +      x) { 
 +      int 
 +      y = 100; zaehlerstand = zaehlerstand + x + y; System.out.println(zaehlerstand); zaehlerstand = zaehlerstand + 
 +      this 
 +      .x + 
 +      this 
 +      .y; System.out.println(zaehlerstand); y = 300; } 
 +      public 
 +      void 
 +      main() { System.out.println( 
 +      "Und hier die Ergebnisse:" 
 +      ); erhoeheZaehlerstand(50); erhoeheNochEinmalZaehlerstand(80); System.out.println(x); System.out.println(y); } } 
 +  2. Nenne die Unterschiede zwischen den Begriffen "Attribut", "Parameter" und "Variable". 
 + 
 +,,,,,,
start/info/11if/04_variablen.1220551395.txt.gz · Zuletzt geändert: 23.10.2013 10:12 (Externe Bearbeitung)
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0