Hallo,
ich habe eine 1600 Zeilen lange Klasse mit ~150-200 "globalen?" Variablen und mehreren Methoden, die auf diese Variablen zugreifen und diese verändern können müssen. Die Methoden rufen sich gegenseitig auf.
Nun wollte ich die Länge der Klasse reduzieren, indem ich die Methoden in eigene Klassen auslagere, das wäre auch später für die Dokumentation (Klassendiagramm etc) von Vorteil.
-Vererbung über Konstruktor
Ist in meinem Fall bei so vielen Variablen nicht sinnvoll
-Vererbung über "extends"
Habe ich versucht und bin überrascht, dass es nicht funktioniert.
Klasse_B extends Klasse_A und erbt damit alle globalen Variablen die in Klasse_A stehen.
Wenn ich die Variablen dann aber in Klasse_B benutze sind diese neu initialisiert.
Ich brauche aber in Klasse_B die gleichen Werte wie in Klasse_A, damit ich Methoden die im Moment in Klasse_A stehen nach Klasse_B auslagern kann.
Beispiel:
Ergebnis in der Console:
Klasse_A: 4
Klasse_B: 0
Eigentlich "spiele" ich jetzt schon lange genug mit java, dass ich das wissen müsste und hab auch nach Vererbung gesucht, aber irgendwie hab ich ein Brett vorm Kopf.
Danke für eure Hilfe
ich habe eine 1600 Zeilen lange Klasse mit ~150-200 "globalen?" Variablen und mehreren Methoden, die auf diese Variablen zugreifen und diese verändern können müssen. Die Methoden rufen sich gegenseitig auf.
Nun wollte ich die Länge der Klasse reduzieren, indem ich die Methoden in eigene Klassen auslagere, das wäre auch später für die Dokumentation (Klassendiagramm etc) von Vorteil.
-Vererbung über Konstruktor
Ist in meinem Fall bei so vielen Variablen nicht sinnvoll
-Vererbung über "extends"
Habe ich versucht und bin überrascht, dass es nicht funktioniert.
Klasse_B extends Klasse_A und erbt damit alle globalen Variablen die in Klasse_A stehen.
Wenn ich die Variablen dann aber in Klasse_B benutze sind diese neu initialisiert.
Ich brauche aber in Klasse_B die gleichen Werte wie in Klasse_A, damit ich Methoden die im Moment in Klasse_A stehen nach Klasse_B auslagern kann.
Beispiel:
Code:
public class Klasse_A {
//150-200 Variablen
int testVar = 0;
//viele Methoden, die die Varialen ändern.
public void testMethode () {
testVar = 4;
System.out.println("Klasse_A: "+testVar);
Klasse-B kb = new Klasse-B();
}
}
Code:
public class Klasse_B extends Klasse_A {
public Klasse_B() {
System.out.println("Klasse_B: "+testVar);
}
}
Ergebnis in der Console:
Klasse_A: 4
Klasse_B: 0
Eigentlich "spiele" ich jetzt schon lange genug mit java, dass ich das wissen müsste und hab auch nach Vererbung gesucht, aber irgendwie hab ich ein Brett vorm Kopf.
Danke für eure Hilfe