Apr 30

Was ist der Output des folgenden Codes:

class Angestellter{

int d = 10;

Angestellter (int b) {

int c =10;

d =7;

}

public static void main (String [] args) {

Angestellter a = new Angestellter(5);

System.out.println(d);

}

}

Antwort/ answer
Apr 18

Zuerst ein Beispiel:

class Angestellter
{

{ int a=10;}

public static void main (String [] args)

{

}

}

Die Variable a ist – genauso wie beim Konstruktor – nur innerhalb ihres eigenen Blockes sichtbar/ nutzbar und kann danach nicht mehr benutzt werden.

Anders verhält es sich, wenn die Variable vorher deklariert wurde.
class Angestellter
{

int a=12;

{a=10;} //a wird der Wert 10 zugewiesen;

void getValue()

{

System.out.println(a);

}

public static void main (String [] args)

{

Angestellter a= new Angestellter();

a.getValue(); // Wert 10 wird ausgegeben

}

}

Da die Variable nicht im Initialisierungsblock sondern vorher initialisiert wurde ist diese auch außerhalb dieses Blockes gültig.

Apr 12

Was ist der Output bei folgendem Code:

class Test

public static void main (String [] args)

{

int i = 5;

for (int x =1; x<10; x++)

{

int y = 1;

}

System.out.println(y);

}

}

Antwort/ answer

Mrz 31

Als erstes mal wieder ein Beispiel:

int i = 5;
for (int x =1; x<10; x++)
{

int y = 1;

i =i+x;

}

Alle Variablen, die innerhalb der Schleife deklariert werden, sind nur innerhalb der Schleife gültig. In unserem Beispiel kann auf x und y nicht mehr zugegriffen werden. Da aber i vorher deklariert worden ist, kann auch weiter auf diese Werte zugegriffen werden.

Mrz 23

Lokale Variablen sind von der Initialisierung bis zum Programmende gültig.

Mrz 21

Der Einfachheit halber mal wieder ein Beispiel:

class Angestellter
{

Angestellter ()

{

int i = 10;

}

}

Variable i ist nur im Konstruktor gültig, mit erfolgreich angelegtem Konstruktor, bzw. Verlassen des Konstruktors erlischt auch die Gültigkeit der Variable.

Mrz 15

Auch hiernochmal ein Beispiel:

class Angestellter
{
static int a = 10; // statische Variable
int b = 12; // Instanzvariable
….
}

Im Unterschied zu der statischen Variable, die es unabhängig von den Instanzen nur einmal gibt und demnach für alle Instanzen gleich ist, werden Instanzvariablen für jede Instanz neu angelegt und können deshalb auch unterschiedliche Werte annehmen.

Sie sind solange gültig, wie die Instanz gültig ist.
Lebt das Objekt nicht mehr, gibt es auch logischerweise keine Variablen mehr dazu.

Mrz 13

nochmal ein Beispiel vorneweg:

class Angestellter
{

static int a = 10;

public static void main (String [] args)

{

}

}

Statische Variablen haben die längste Gültigkeitsdauer und werden häufig als Konstanten verwendet.
Es gibt für sämtliche Instanzen einer Klasse nur eine Variable, die von allen benutzt wird.
Wird diese im Laufe ihrer Lebenszeit geändert, gilt diese Änderung demnach auch für alle Klassen. Es kann auf unterschiedlichsten Wegen auf die statischen Variablen zugegriffen werden:

class Angestellter
{

static int a = 10;

}


class Buchhalter extends Angestellter
{

public static void main (String [] args)

{

System.out.println (a); // Direkter Zugriff

a = 12; // Abänderung möglich

System.out.println (Angestellter.a); // Zugriff über Klassenname

System.out.println (b.a); // Zugriff über Instanz

}

}

Mrz 11

Variablen sind ja vielfältig einsetzbar, z.B. in Konstruktoren, Schleifen, Funktionen, usw. Zusätzlich können diese ja auch noch als static deklariert werden.

Hier erst einmal ein paar Beispiele:
class Text {
static int a = 123;
// statische Variable
int b; // Instanz-Variable
{ b = 1; int c = 4; } // Initialisierungsblock
Text () { b = 7; } // Konstruktor
void saveData () {
int d = 5;
// lokale Variable
for (int e =5; e>0; e–) { //innerhalb einer Schleife

{d=e;}

}

Es ist recht wichtig, genau zu wissen, wie welche Variablen in welchem Zusammenhang genannt werden und wie lange sie gültig sind. Beliebte Aufgaben beim SCJP sind solche, bei denen man abschätzen muss, welche Werte diese Variablen haben, bzw. ob sie überhaupt noch gültig sind.
An den folgenden Tagen gehe ich etwas näher auf die einzelnen Gültigkeitsräume ein

preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs