Entwickler-Ecke
Basistechnologien - Instanz einer Klasse überschreibt Variable in anderer
HCN - Sa 14.06.08 15:20
Titel: Instanz einer Klasse überschreibt Variable in anderer
Hallo,
ich wollte mir eine Klasse schreiben die Methoden bereit stellt um mit Brüchen umzugehen.
Es funktioniert soweit auch alles, nur wenn ich mehrere Instanzen dieser Klasse erzeuge, dann überschreibt die letzte das int Array von der anderen. Ich dachte eigentlich das jede Instanz ihre eigenen Variablen hat. Was mache ich falsch ?
Hier mal die relevanten Ausschnitte:
Die Klasse:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| class Bruch { static private int[] bruch;
public Bruch() { bruch = new int[2]; }
public Bruch(int zaehler, int nenner) { bruch = new int[2]; bruch[0] = zaehler; bruch[1] = nenner; } } |
Und dann mit
C#-Quelltext
1: 2: 3: 4:
| Bruch Bruch1 = new Bruch(2, 3); Bruch Bruch2 = new Bruch(1, 2); Bruch Bruch3 = new Bruch(3, 8); |
Warum hat nicht jedes Bruch Objekt seine eigene Version von int[] bruch ??? Irgendwie haben die am Ende alle die gleichen Werte (3 und 8), aber warum nur ?
Vielen Dank
MfG HCN
Christian S. - Sa 14.06.08 15:22
Du hast deklariert:
C#-Quelltext
1:
| static private int[] bruch; |
Statische Felder sind Felder, die für die gesamte Klasse gelten. lass das
static weg, dann hat jede Instanz ihr eigenes.
HCN - Sa 14.06.08 15:36
Achso.... Na dann. Anfängerfehler :-) Dankeschön !!!
Kha - Sa 14.06.08 16:30
Kleine Anmerkung: Rein nach eigenem Geschmack würde ich zwei int-Felder statt des Arrays benutzen, solange dieses dir keinen Vorteil bringt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!