Ich habe ein Problem:
Also ich hab 2 Klassen definiert, Book und user, und ein Hauptprogramm.
In der Klasse user gibts ein array von Book, sowie auch im Hauptprogramm.
Als erstes lese ich von einer Datei Daten ein, die ich in das Array im Hauptprogramm setze (das klappt noch).
Dann will ich einzelne Objekte aus diesem Array in das andere setzen. Und daran bin ich gescheitert
ich habs versucht mit einer Methode im user:
public void addbasket(Book selected) {
bollean added = false;
int i=0;
while (added = false) {
if (basket[i]= null) {
basket[i] = new Book();
basket[i] = selected;
added = true;
}
i++;
} }
die soll an der ersten freien Stelle in diesem array ein book einfuehren. Ich glaub sie setzt aber nur einen pointer, was mir eigentlich egal waere, nur klappts ueberhaupt nicht
Ich hab als zweiten Versuch zuerst alles aus selected herausgelesen, und dann im anderen array ein neues objekt book mit diesen daten geschaffen, und auch das klappt komicherweise nicht. Was mache ich falsch?
erst einmal vorneweg: Wenn ich das recht verstehe, dann ist die
Klasse Book ein Buch. In user und im Hauptprogramm existiert
jeweils ein array aus Book-Elementen.
Deine Methode kann das glaube ich dann gar nicht. Diese Methode
soll das Objekt selected in das array in der user-Klasse an die
erste freie Stelle setzen, richtig?
public void addbasket(Book selected) {
bollean added = false;
int i=0;
while (added = false) {
hier solltest du besser
while (added == false)
schreiben oder einfach nur
while (!added)
if (basket[i]= null) {
hier mußt du auch basket[i] == null schreiben
basket[i] = new Book();
so hier hast du nun ein neues Objekt der Book-Klasse erzeugt, was
eigentlich nicht notwendig ist, denn
basket[i] = selected;
hier wird nun endlich eingefügt, deshalb ist der vorhergehende
Schritt umsonst, da das dort erzeugte Objekt hier durch selected
ersetzt wird
added = true;
}
i++;
} }
kürzer geht es vielleicht so:
public void addbasket(Book selected) {
for (int i=0; i
Also ich hab 2 Klassen definiert, Book und user, und ein
Hauptprogramm.
Das sollte User heißen.
Dann will ich einzelne Objekte aus diesem Array in das andere
setzen.
public void addBasket(Book selected)
{
int i = 0;
while (basket[i] != null)
{
i++
}
basket[i] = selected;
}
Was mache ich falsch?
Du hast in der Bedingung eine Zuweisung gemacht, war das ein abtippfehler?
Du erstellst ein Buch und überschreibst es gleich wieder. Das ist nicht nötig, den Platz für das Buch hast Du schon erstellt, als Du irgendwo ‚new Book[30]‘ geschreiben hast.
Ich würde java.util.Vector benutzen, damit läßt sich leichter arbeiten. Arrays benutze ich nur, wenn alle Elemente gleich behandelt werden.
public void addbasket(Book selected) {
for (int i=0; i
public void addbasket(Book selected)
{
for (int i = -1; basket[++i];
basket[i] = selected;
}
Hehe. Ich liebe diese C-ifizierten Programme. Ich habe während der Ausbildung eine Wurzelfunktion geschrieben, die ohne if auskam. Der Lehrer war nicht begeistert.
public void addbasket(Book selected)
{
for (int i = -1; basket[++i];
basket[i] = selected;
}
Sicher dass das geht? Ne Umwandlung von einer Book-Referenz in ein boolean? also ich hab das bisher ned hingekriegt dass ich wie im C einen Null-pointer als false oder so verwenden kann.