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". | ||
+ | ,,,,,, |