Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hätte ne kleine Java - Einsteiger Frage. Also ich bräuchte eine abstrakte Oberklasse, welche static Attribute besitzt und verschiedene vererbte Klassen. Deren Attribute sollen allerdings alle unterschiedliche Werte haben. Kleines Beispiel:
klasse1 und klasse2 haben beide attribut var1, dies ist aber in beiden unabhängig von den anderen. Wisster wie? :lol:
Und wüsste zufällig jemand wie ich mit Java3D ein Torus/Donut erzeuge?
hätte ne kleine Java - Einsteiger Frage. Also ich bräuchte eine abstrakte Oberklasse, welche static Attribute besitzt und verschiedene vererbte Klassen. Deren Attribute sollen allerdings alle unterschiedliche Werte haben. Kleines Beispiel:
klasse1 und klasse2 haben beide attribut var1, dies ist aber in beiden unabhängig von den anderen. Wisster wie? :lol:
Also um das Ganze nochmal mit nem Beispiel zu untermauern.
Ich bräuchte eine Oberklasse, welche mehrere Attribute hat, sagen wir var1, var2,...
und mehrere Unterklassen...z.B.
Klasse 1: var1= 0.5 , var2=0.3... //Startwerte
Klasse 2: var1= 0.3 , var2=0.02...
Die Variablen sind von der Zeit abhängig und sollen für jede Instanz einer Klassen gleich sein (deswegen dachte ich static)...aber die Abhängigkeiten der einzelnen Klassen unterscheiden sich voneinander... und ich muss halt auf die einzelnen Attribute zugreifen können, ohne dass ich weiß ob es Klasse1 oder 2 ist...
Mach dir in deiner Oberklasse abstrakte Funktionen getVar1 und getVar2 und überschreib sie in den Unterklassen. Kannst du static machen, musst du aber nicht, du gibst ja immer fixe Werte zurück.
na die fixen werte hab ich ja nur so hingeschrieben (Als Startwerte), die sollen mit jedem Zeitschritt für alle Instanzen der jeweiligen Klasse geändert werden ?!
Nochmal zum Beispiel ... Ich müsste pro Step sagen können Klasse1.setVar1... , Klasse2.setVar1....
Naja alle Instanzen einer Klasse sollen schon die gleichen Werte haben, diese Werte sind aber nicht konstant... Ich glaube ich muss nochmal mein Problem spezifieren.
Ich müsste jeden Step folgendes machen können:
1. best. Anzahl von Objekten der Klassen 1 und 2 erzeugen
2. die Werte Var1 und Var2 für alle Instanzen von Klasse 1 und Klasse 2 ändern ( alle Instanzen von Klasse1 haben den selben Wert Var1 und alle Instanzen von Klasse 2 haben den selben Wert Var1)
3. Ich bekomme ein Object vom Typ der Oberklasse übergeben und möchte auf Var1 zugreifen (weiß an der Stelle nicht ob es Instanz von Klasse 1 oder 2 ist?
hier hab ich noch ein Beispiel, was nochmal bisschen verdeutlichen soll, was ich meine, vielleicht sticht euch ja der Fehler gleich ins Gesicht. Das Beispiel macht nicht viel Sinn, demonstriert aber hoffentlich was ich erreichen möchte.
[/code]
Ja und was rauskommen sollte is, dass bei z.B. i= 3 Var1 bei allen Instanzen von Element 1 =3 und bei Element 2 =7 und ich bei meth1 für Instanzen von Element eins 3 und bei zwei 7 rausbekomme.
Ich bin mir noch nicht sicher, ob ich das Problem verstanden haben, aber bisher hört es sich für mich so an, als könne man in der (abstrakten?) Basisklasse A eine Instanzmethode getXYZ() definieren. Die Ableitungen B1 und B2 dieser Klasse müssen dann getXYZ() irgendwie implementieren - z.B. indem sie den Wert einer statischen Variablen zurückliefern.
Code:
abstract class A {
abstract int getXYZ();
}
class B1 extends A {
private static int valB1;
int getXYZ() {
return valB1;
}
}
class B2 extends A {
private static int valB2;
int getXYZ() {
return valB2;
}
}
Damit kann man getXYZ() sowohl an Instanzen der Klasse B1 als auch an Instanzen der Klasse B2 aufrufen, ohne wissen zu müssen, dass es sich um etwas anders als Instanzen von A handelt. Trotzdem liefern alle Instanzen der Klasse B1 immer den gleichen Wert und alle Instanzen der Klasse B2 ebenfalls immer den gleichen Wert - aber eben möglicherweise einen anderen als die Instanzen der Klasse B1.
In diesem Fall könnte man A auch als Interface definieren anstatt als (abstrakte) Klasse - ob das in deinem Fall auch der Fall ist, musst du entscheiden.
static ist instanzenblind. Wenn du in einer instanz die variable setzt gilt die fuer alle anderen ebenso. D.h. du kannst nicht verschiedene werte haben.
ich wuerde static komplett weglassen - jdf nach deine beschreibung. Oder gibt es zig Element1 bzw Element2 Objekte, die immer die selben var1, var2 werte haben (muessen)?
vielen Dank für Eure Hilfe! Murray hat verstanden was ich meinte ... Ich gebe zu : im Nachhinein ist es etwas sträflich nicht selbst darauf gekommen zu sein! Deswegen danke ich euch umso mehr, euch mit dieser Thematik befasst zu haben.