static Attribute und Vererbung

magguz

Mitglied
Hallo Leute,

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?

ansonsten schönes WE und beste Grüße

Markus
 
Zuletzt bearbeitet:

Murray

Top Contributor
"Vererbung" und "static" schließen sich in Java irgendwie aus. Kannst Du uns das Problem etwas genauer beschreiben?


Und die Frage zu Java-3D würde ich an Deiner Stelle a) als eigenen Beitrag und b) unter "Spiele - und Multimedia-Programmierung" posten.
 

tuttle64

Bekanntes Mitglied
Hallo Leute,

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:


Alle Fields einer Klasse sind objektspezifisch, solange kein static verwendet wird!

Und wüsste zufällig jemand wie ich mit Java3D ein Torus/Donut erzeuge?


Ja.
 

magguz

Mitglied
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...

Verstanden was ich meine?

pls help! :)




...hmm würdest du es mir verraten?

Ansonsten erstmal thx für die Antworten.

Beste Grüße
 
Zuletzt bearbeitet:

bERt0r

Top Contributor
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.
 

magguz

Mitglied
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....


Grüße
 
Zuletzt bearbeitet:
B

bygones

Gast
wenn es dir nur um versch. werte geht reichen dir einfach untersch. instanzen einer klasse

da brauchst du keine vererbung
 

magguz

Mitglied
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.

[Java]

public abstract class Element {

protected static double var1;
protected static double var2;

public static double getVar1() {
return var1;
}
public static void setVar1(double var1) {
Element.var1 = var1;
}
public static double getVar2() {
return var2;
}
public static void setVar2(double var2) {
Element.var2 = var2;
}
}


public class Element1 extends Element{

public Element1(){
super();
var1=0;
var2=0;
}
}

public class Element2 extends Element{

public Element2(){
super();
var1=4;
var2=8;
}
}

import java.util.*;

public class uhiu {

public static void main(String[] args) {
List<Element> elements = new ArrayList<Element>();

Random random = new Random();

for (int i = 0; i < 50; i++) {
if (i % 2 == 0)
elements.add(new Element1());

else
elements.add(new Element2());

Element1.setVar1(Element.getVar1() + 1);
Element1.setVar2(Element.getVar1() - 1);

meth1(elements.get(random.nextInt(elements.size())));
}
}

public static void meth1(Element ele) {
var1 = ele.getVar1;
System.out.println(var1);
}
}

[/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.



greets
 
Zuletzt bearbeitet:

Murray

Top Contributor
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.
 
B

bygones

Gast
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)?
 

magguz

Mitglied
Hallo Leute,

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.


Beste Grüße

Markus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
A Instance methods should not write to "static" fields Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Static Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S public static boolean Java Basics - Anfänger-Themen 4
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
L non-static Fehler Java Basics - Anfänger-Themen 16
S Klassenmethode ohne static Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
D Methoden Scannervariablen in static Methoden Java Basics - Anfänger-Themen 5
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
V the static method should be accessed is a static way Java Basics - Anfänger-Themen 6
NormanPatrickBenner static non-static Java Basics - Anfänger-Themen 82
N Erste Schritte "non-static method" oder "XYZ can not be resolved" Java Basics - Anfänger-Themen 21
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
R static in der Methode Java Basics - Anfänger-Themen 2
E Problem mit static Methode Java Basics - Anfänger-Themen 4
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
D Das leidige Thema static.... Java Basics - Anfänger-Themen 15
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
T Problem mit static Java Basics - Anfänger-Themen 6
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
snipesss Was kann 'static'? Java Basics - Anfänger-Themen 4
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
E Objekte und static Java Basics - Anfänger-Themen 2
K Methoden Methoden in Methoden -> static oder nicht? Java Basics - Anfänger-Themen 7
D Erklärung static boolean Java Basics - Anfänger-Themen 6
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
O Zu viel static im Projekt Java Basics - Anfänger-Themen 9
F Static final Klasse Java Basics - Anfänger-Themen 0
N static und Objekt kombiniert?!? Java Basics - Anfänger-Themen 3
O Wann nutzt man static? Java Basics - Anfänger-Themen 19
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
A Static variablen --- Anwendungsbereich Java Basics - Anfänger-Themen 11
B Erste Schritte Wie komme ich aus Static raus?!! Java Basics - Anfänger-Themen 4
V Static Methods Java Basics - Anfänger-Themen 5
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
S OOP Klasse mit static-Eigenschaften - HashMap füllen Java Basics - Anfänger-Themen 6
3 OOP static class in einer Klasse Java Basics - Anfänger-Themen 6
B static individuell "vererben"? Java Basics - Anfänger-Themen 8
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
T Static Fehler Java Basics - Anfänger-Themen 1
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
A Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 6
W Variablen Automatisch static? Java Basics - Anfänger-Themen 3
O Warum muss ich static? Java Basics - Anfänger-Themen 6
O Static Java Basics - Anfänger-Themen 15
E non-static method und static context Java Basics - Anfänger-Themen 15
B non static interface Methode Java Basics - Anfänger-Themen 16
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
S Static void Methode Java Basics - Anfänger-Themen 12
Q Unterschied zwischen static und keinem Modifier Java Basics - Anfänger-Themen 15
O Main-Methode static modifier umgehen Java Basics - Anfänger-Themen 10
J Variablen non-static variable Java Basics - Anfänger-Themen 2
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
J static - Methoden Java Basics - Anfänger-Themen 22
X Erste Schritte Methode ohne Static Java Basics - Anfänger-Themen 4
B Classpath static block - Verwirrung Java Basics - Anfänger-Themen 2
S Methoden Warum ist sleep static? Java Basics - Anfänger-Themen 9
K static, non-static Krise Java Basics - Anfänger-Themen 4
R Schlüsselworte static Methoden und Imports Java Basics - Anfänger-Themen 10
M Methoden "Non-static method xy cannot be referenced from a static context" Java Basics - Anfänger-Themen 20
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
K Objekt erstellen - error: non-static variable this cannot be referenced from a static context Java Basics - Anfänger-Themen 17
H non-static method cannot be referenced from a static context Java Basics - Anfänger-Themen 2
Y Gebrauch von static Java Basics - Anfänger-Themen 29
L Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 6
T getClass() im static Kontext Java Basics - Anfänger-Themen 12
S Frage zu public static Java Basics - Anfänger-Themen 29
M Problem mit Static Method Java Basics - Anfänger-Themen 8
H Methoden Static ? Java Basics - Anfänger-Themen 10
K Erste Schritte Zugiff ohne static Java Basics - Anfänger-Themen 5
X Static char Problem Java Basics - Anfänger-Themen 11
H static final vs. final static Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben