Counter im Konstruktor

Paetzi

Mitglied
Guten Tag Community,

eventuell hat ja jemand Lust mir einen Denkanstoss zu geben. (Bitte nicht einfach die Lösung verraten). Ich möchte bei der Ausgabe erreichen, dass mein counter Wert sich immer um 1 erhöht, leider funktioniert es nicht er bleibt immer bei 1... Die Anzahl der Aufrufe der show() Methode ist zufällig. (Andere Klasse, dort darf der Code nicht verändert werden)

Es soll in etwa so aussehen:

1-tes Paket entält...
2-tes Paket enthält...
usw.

Ich habe folgenden Code:

class SurpriseBag {

String s; //Schokolade
String a; // Buch
String b; // Stift
int counter = 0;
String kino = "Kino";
String ball = "Ball";




SurpriseBag() {
counter = counter++;

}


SurpriseBag(String s) {
this.s = s;
counter = counter++;

}

SurpriseBag(String a, String b) {
this.a = a;
this.b = b;
counter = counter++;

}

public void show() {

System.out.println(counter+ "-tes Paket enthaelt: ");
}

public static String getTotalNumber() {


String s = "Todo";


return s;
}

}

Vielen Dank für eure Hilfe.
 

JStein52

Top Contributor
counter ist eine Instanzvariable bei dir und zählt halt immer ein einzelnes Objekt. Deshalb Ergebnis = 1. Stichwort static ....
 

temi

Top Contributor
Ich verstehe nicht, was die ganzen Strings da sollen? Ein String für den Inhalt sollte ausreichend sein, was dann drin ist wird doch über den Konstruktor gesetzt.
Java:
class SurpriseBag {

String inhalt;

SurpriseBag(String s) {
this.inhalt = s;
}

Und als Hilfe für das Problem, das von JStein52 angesprochen wurde: Es werden mehr als eine int-Variable benötigt...

Und außerdem noch
counter = counter++ ist doppelt gemoppelt, denn counter++ steht bereits für counter = counter + 1 .
 

JStein52

Top Contributor
Ja, es sind noch ein paar Sächelchen im Argen. Der counter zählt ja zum Beispiel nur wieviele SurpriseBag-Objekte während des Ablaufs des Programmes mal angelegt wurden aber nicht wie viele gerade existieren. Die können ja schon lange wieder dem GC zum Opfer gefallen sein. Und die show()-Methode kann auch nicht wirklich zuordnen zum wievielten Objekt jetzt diese Ausgabe gehört. Das funktioniert nur scheinbar richtig wenn man immer abwechselnd new() und show() aufruft. Wenn man allerdings drei Objekte anlegt und erst anschliessend für diese drei die show()-Methode dann gehts daneben.
 

Paetzi

Mitglied
Entschuldigt, dass ich mich erst jetzt wieder melde. Es handelt sich bei dem Programm um eine Aufgabenstellung. Ich habe das Programm jetzt soweit überarbeitet. Sieht jetzt so aus und macht was es soll. Lediglich bei den if Abfragen würde mich interessieren ob man das ganze effektiver also mit weniger Code erreichen kann.

class SurpriseBag {

String s; //Schokolade
String a; // Buch
String b; // Stift
String j; //Zufallsgeschenk
static int counter = 0;
String [] presents = {"Auto", "Motorrad", "Computer", "Spielfigur"};


SurpriseBag() {
j = presents[(int) (Math.random() * 4)];
counter++;

}


SurpriseBag(String s) {
this.s = s;
counter++;

}

SurpriseBag(String a, String b) {
this.a = a;
this.b = b;
counter++;

}

public void show() {

System.out.print(counter+ "-tes Paket enthaelt: ");
if(s!=null)
{
System.out.print(s+" ");
}
if(a!=null)
{
System.out.print(a+" ");
}
if(b!=null)
{
System.out.print(b+" ");
}
if(j!=null)
{
System.out.print(j+" ");
}




System.out.println();
}

public static String getTotalNumber() {


String total = String.valueOf(counter);


return total;
}

}

Vielen Danke für eure Hilfe!
 
Zuletzt bearbeitet:

JStein52

Top Contributor
Sieht jetzt so aus und macht was es soll.
Ich würde sagen es macht nur zufällig das was es soll. siehe oben.
Und du kannst den Inhalt in den Konstruktoren jeweils in einem einzelnen String abspeichern:
Code:
String inhalt;
.
.
.
inhalt = a+", "+b;    // im konstruktor mit den zwei argumenten und entsprechend in den anderen Konstruktoren
in den anderen Konstruktoren entsprechend. Und im show gibst du einfach inhalt aus.
 

Paetzi

Mitglied
Es ist wie von dir oben beschrieben so, dass in der vorgegeben Klassen, immer erst ein Objekt erzeugt wird und im Anschluss wird es direkt aufgerufen. In der Aufgabenstellung, wird einmal ein Objekt mit 2 Werten, dann mit einem Wert und anschließend eine zufällige Zahl von Objekten (bis zu 10) ohne Wert erzeugt. An dieser Klasse darf auch nichts verändert werden.
 

JStein52

Top Contributor
An dieser Klasse sollst du ja auch nichts ändern. Aber um korrekt zu sein müsstest du dir für jedes Objekt noch merken das wievielte es ist. Sonst funktioniert deine Klasse nur für genau diese eine Aufrufreihenfolge !
 

Paetzi

Mitglied
Okay danke für die Hilfe mit den if-Abfragen funktioniert :) Was das merken der Objekte angeht, muss ich gestehen überlege ich gerade noch was genau gemeint ist. Ich muss gerade noch eine andere Aufgabenstellung lösen, sobald ich dass getan habe, werde ich die Reihenfolgen der Aufrufe in der anderen Klasse ändern um zu schauen was passiert. Werde es dann heute oder morgen hier posten. Aber vielen vielen Dank für deine Hilfe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
Ostkreuz Counter für Booleanwerte Java Basics - Anfänger-Themen 8
B Threads Counter mit ungeraden Zahlen Java Basics - Anfänger-Themen 32
P Iterieren mit einer Foreach in Lambdaschreibweise und Counter. Java Basics - Anfänger-Themen 1
S Counter Label Button Java Basics - Anfänger-Themen 4
S Java Counter: nur 1 mal hochzählen auch wenn Abfrage mehrmals zutrifft. Java Basics - Anfänger-Themen 1
I counter der ausgegebenen zahlen Java Basics - Anfänger-Themen 2
Todesbote Treeset - Wenn bestimmtes Objekt vorkommt Counter erhöhen Java Basics - Anfänger-Themen 6
CR7 String schneiden und Counter hochzählen Java Basics - Anfänger-Themen 9
A Counter für die anzahl von regulären ausdrücken Java Basics - Anfänger-Themen 4
H Java - Counter Java Basics - Anfänger-Themen 2
M Counter erstellen - Was mache ich falsch? Java Basics - Anfänger-Themen 17
O Counter im JWindow mit Thread und dispose Java Basics - Anfänger-Themen 3
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
T Schlüsselworte Schlüsselwort this im Konstruktor Java Basics - Anfänger-Themen 3
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
J Konstruktor Java Basics - Anfänger-Themen 18
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Konstruktor und update Java Basics - Anfänger-Themen 4
K Kopier-Konstruktor Java Basics - Anfänger-Themen 6
S Default Konstruktor Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
HorstSchröder Konstruktor mit Initialwert Java Basics - Anfänger-Themen 1
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Konstruktor passt nicht zum Rest Java Basics - Anfänger-Themen 11
C Unbekannter "Konstruktor"?? Java Basics - Anfänger-Themen 10
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
E Konstruktor mit Methode Java Basics - Anfänger-Themen 7
E ArithmeticException im Konstruktor Java Basics - Anfänger-Themen 4
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
W Typecastin im Konstruktor? Java Basics - Anfänger-Themen 2
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
D Compiler-Fehler Konstruktor von Superklasse übernehmen Java Basics - Anfänger-Themen 1
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Datentypen Warum mit Konstruktor Objektvariablen initalisieren? Java Basics - Anfänger-Themen 19
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
P Konstruktor. Java Basics - Anfänger-Themen 4
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
D Objekt oder Konstruktor Java Basics - Anfänger-Themen 2
F Java default Konstruktor Java Basics - Anfänger-Themen 1
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
T Konstruktor mit Referenzdatentypen Java Basics - Anfänger-Themen 5
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
R ArrayList im Konstruktor. Java Basics - Anfänger-Themen 4
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
C Generic im Konstruktor Java Basics - Anfänger-Themen 1
F Privater Konstruktor und statische Methoden Java Basics - Anfänger-Themen 4
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
G Verwendung von Konstruktor Java Basics - Anfänger-Themen 8
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
B Konstruktor Problem Java Basics - Anfänger-Themen 8
Joew0815 konstruktor und damit erstellte objekte Java Basics - Anfänger-Themen 1
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
H Fehler im Konstruktor abfangen Java Basics - Anfänger-Themen 10
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
O Konstruktor und Default Konstruktor Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben