View Full Version : [Frage] Runde 4 Objektorientiert
crash1980
11-06-2004, 13:41
Hallo,
da ich relativ "neu" in Java bin, hier meine vielleicht naive Frage.
Ich hab als Aufgabe Bruchrechnen erhalten, eingelesen werden 2-4 Brüche als Strings.
Ich habe mir das so gedacht, daß pro Bruch eine Instanz initialisiert wird mit den Variablen Zähler und Nenner. Allerdings weiß ich leider nicht wie ich das umsetzen soll. Da ja die Anzahl der Brüche variabel ist, weiß ich nicht wie ich je nach Bruchanzahl variabel viele Instanzen initialisiere.
Bitte um Mithilfe,
Markus
Martinez
11-06-2004, 14:55
du schreibst eine classe zB Bruch.java
diese hat 2 variablen: int zähler und int nenner.
dann musst du einen eigenen Contruktor schreiben, der die instanz-variablen mit den Werten der eingabe initialisiert. z.B. in form von parameterübergabe.
beim einlesen speicherst du erst die strings in einem vector oder array-list.
dann liest du sie wieder aus und rufts mit jedem string den contructor der classe bruch.java auf. somit hast du soviele instanzen von bruch.java, wie eingegeben wurden.
verstanden?
Du meinst sicher einen Konstruktor...
oder heisst das echt contructor in englisch?... Naja, ist aja uch egal.
crash1980
11-06-2004, 17:09
Gut danke,
muss mich da zwar noch einlesen wie das funktioniert, aber danke für den Tipp.
Eine Frage hätte ich allerdings noch, und zwar ich habe einen String-Array bei dem ein "Feld" leer ist (die Methode split überspringt ein Feld, wenn das Trennzeichen "/" zweimal hintereinander auftritt. Wie frage ich dieses Feld ab ? habs mit ' ', mit (null) usw. versucht, nur leider kein Erfolg.
crash1980
11-06-2004, 19:15
Oberes hat sich erledigt, die einfachsten Sachen fallen einem immer als letztes ein ;-)
Ich scheiter nur immer noch an der Objekt Erzeugung. Ich bin nun soweit daß durch eine For-Schleife jeweils Zähler und Nenner des Bruchs an den Konstruktor übergeben werden und ein neues Objekt erzeugt wird :
for (int i = 0; i < anzahlBrueche - 1; i++) {
Bruch fraction = new Bruch(Rechnen.toInt(p.split(input[1])));
EprogIO.println(fraction);
allerdings wird hier ja bei jedem Durchlauf nur das vorherige Objekt überschrieben und kein zusätzliches erzeugt. Ich brauch allerdings alle um diese dann abschliessend an die Rechen-Methoden zu übergeben.
thx schonmal für eure Tipps und Tricks
Markus
for (int i = 0; i < anzahlBrueche - 1; i++) {
Bruch fraction = new Bruch(Rechnen.toInt(p.split(input[1])));
EprogIO.println(fraction);
allerdings wird hier ja bei jedem Durchlauf nur das vorherige Objekt überschrieben und kein zusätzliches erzeugt. Ich brauch allerdings alle um diese dann abschliessend an die Rechen-Methoden zu übergeben.
Wieso tust Du das ganze nicht mit al.add(new Bruch(Rechnen.toInt(p.split(input[1])))) in eine ArrayList? Da wird dann hinten angehängt & nicht überschrieben.
Details: http://www.kiesler.at/article38.html
crash1980
12-06-2004, 15:17
Vielen Dank,
das ist genau das was ich gesucht hab.
Noch ein schönes Wochenende, du hast meins gerettet ;)
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.