Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
| start:info:11if:04_variablen 08.11.2008 07:10 | start:info:11if:04_variablen 23.10.2013 10:12 aktuell | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Variablen ====== | ====== Variablen ====== | ||
| - | {{ :start:info:11if:schublade.jpg|Schublade}} | + | **In Java gibt es **4 Arten von Variablen**:** | 
| - | **In Java gibt es 4 Arten von Variablen:** | + | |
| + | {{ :start:info:11if:schublade.jpg|Schublade}} | ||
| * Attribute (auch Instanzvariablen genannt) | * Attribute (auch Instanzvariablen genannt) | ||
| - | * fornale Parameter | + | |
| + | * formale Parameter | ||
| * lokale Variablen | * lokale Variablen | ||
| + | |||
| * Klassenvariablen (dazu später mehr) | * Klassenvariablen (dazu später mehr) | ||
| {{:start:info:11if:06var.gif|Arten von Variablen}} | {{:start:info:11if:06var.gif|Arten von Variablen}} | ||
| - | **Gültigkeit 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. | + | 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. | + | * **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.\\ | + | * Der Gültigkeitsbereich einer **lokalen Variable** erstreckt sich von ihrer Deklaration bis zum Ende des einschließenden Blocks. | 
| - | **Beispiel für Gültigkeitsbereiche** | + | * 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}} | {{:start:info:11if:06var2.gif|Beispiel für Gültigkeitsbereiche}} | ||
| - | **Lebensdauer von Variablen** | + | ===== 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 **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. | + | * 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. | + | * 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** | **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). | + | * **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. | + | * **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** | **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; | ||
| - | 1. Es wird ein Objekt der Klasse Zaehler erzeugt. Welche Ausgabe liefert dann der Aufruf von main()? | + | // Konstruktor | 
| - | public | + | public Zaehler() { zaehlerstand = 100; x = 3; y = 5; } | 
| - | class | + | // Methoden | 
| - | Zaehler { | + | |
| - | // Attribute | + | |
| - | private | + | |
| - | int | + | |
| - | zaehlerstand; | + | |
| - | private | + | |
| - | int | + | |
| - | x; | + | |
| - | private | + | |
| - | int | + | |
| - | y; | + | |
| - | // Konstruktor | + | |
| - | public | + | |
| - | Zaehler() { zaehlerstand = 100; x = 3; y = 5; } | + | |
| - | // Methoden | + | |
| public | public | ||
| void | void | ||
| Zeile 85: | Zeile 86: | ||
| 2. Nenne die Unterschiede zwischen den Begriffen "Attribut", "Parameter" und "Variable". | 2. Nenne die Unterschiede zwischen den Begriffen "Attribut", "Parameter" und "Variable". | ||
| + | ,,,,,, | ||