Es ist doch in Java so, dass statische Methoden nicht mit nicht-statischen Variablen umgehen können.
Aber man kann doch mit der Main-Methode die Variablen von Objekten ändern...
Also ich meine Folgendes:
Ich habe eine Klasse:
sowie die Klasse
Hierbei sind doch vorname, nachname, alter und gehalt Instanzvariablen und diese werden doch in der statischen Main-Methode der Klasse AngestelltenVerwaltung "bearbeitet", z.B. in der Zeile
wird die Variable vorname der Instanz waw gesetzt.
Damit greift doch aber eine statische Methode auf eine nicht-statische (d.h. Instanzvariable) Variable zu? Wo ist da mein Denkfehler?
Aber man kann doch mit der Main-Methode die Variablen von Objekten ändern...
Also ich meine Folgendes:
Ich habe eine Klasse:
Java:
class Angestellter
{
String vorname;
String nachname;
int alter;
int gehalt;
void erhöheGehalt(int erhöhung)
{
gehalt += erhöhung;
}
}
sowie die Klasse
Code:
class AngestelltenVerwaltung
{
public static void main(String[] args)
{
// Angestellte Müller anlegen
Angestellter mül = new Angestellter();
mül.vorname = "Petra";
mül.nachname = "Müller";
mül.alter = 45;
mül.gehalt = 1800;
// Angestellten Wawrzyniak anlegen
Angestellter waw = new Angestellter();
waw.vorname = "Leszek";
waw.nachname = "Wawrzyniak";
waw.alter = 23;
waw.gehalt = 1300;
// Gehalt von Herrn Wawrzyniak erhöhen
System.out.println("Das alte Gehalt von Herrn Wawrzyniak: " + waw.gehalt);
waw.erhöheGehalt(50); // geänderte Zeile
System.out.println("Das neue Gehalt von Herrn Wawrzyniak: " + waw.gehalt);
}
}
Hierbei sind doch vorname, nachname, alter und gehalt Instanzvariablen und diese werden doch in der statischen Main-Methode der Klasse AngestelltenVerwaltung "bearbeitet", z.B. in der Zeile
Code:
waw.vorname = "Leszek";
wird die Variable vorname der Instanz waw gesetzt.
Damit greift doch aber eine statische Methode auf eine nicht-statische (d.h. Instanzvariable) Variable zu? Wo ist da mein Denkfehler?