Ich versuche hier gerade eine klasse regal zu schreiben. das regal soll zunächst keine bücher enthalten. durch addBuch() sollen bücher hinzugefügt werden, durch removeBuch() sollen bücher entfernt werden.
ich habe noch 2 probleme:
1) addBuch() fügt höchstens 2 bücher hinzu, egal wie oft ich die methode anwende?!?
2) bei der methode removeBuch() habe ich versucht über buecher.isbn bzw buecher.getISBN() aus die isbn zuzugreifen, um dasjenige buch aus dem regal zu entfernen, ich bekomme jedoch eine nullpointer exception; habe die referenz mal ausgegeben.. ist null. woran liegt das? in der toString methode kann ich doch genau so darauf zugreifen, wieso nicht in removeBuch()?
ich habe noch 2 probleme:
1) addBuch() fügt höchstens 2 bücher hinzu, egal wie oft ich die methode anwende?!?
2) bei der methode removeBuch() habe ich versucht über buecher.isbn bzw buecher.getISBN() aus die isbn zuzugreifen, um dasjenige buch aus dem regal zu entfernen, ich bekomme jedoch eine nullpointer exception; habe die referenz mal ausgegeben.. ist null. woran liegt das? in der toString methode kann ich doch genau so darauf zugreifen, wieso nicht in removeBuch()?
Java:
import java.util.*;
class Buch {
String isbn;
String titel, autor, zustand, ort;
Buch(String isbn, String titel, String autor, String zustand, String ort) {
this.isbn = isbn;
this.titel = titel;
this.autor = autor;
this.zustand = zustand;
this.ort = ort;
}
public void ausleihen(String str) {
ort = str;
}
public void zurueckbekommen() {
ort = "Regal";
if(zustand == "Gebraucht") {
zustand = "Altpapier";
}
else
if( zustand == "Neuwertig") {
zustand = "Gebraucht";
}
}
public String getISBN() {
return isbn;
}
public boolean setISBN(String eingISBN) {
boolean b = false;
int sum = 0;
for(int i = 0, x = 10, n = eingISBN.length(); i < n; i++) {
char c = eingISBN.charAt(i);
switch(c) {
case' ': break;
case'-': break;
case'0':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'1':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'2':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'3':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'4':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'5':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'6':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'7':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'8':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
case'9':sum = sum + x * Integer.parseInt(String.valueOf(c));
x--;
break;
}
}
if(eingISBN.length() == 13 && sum % 11 == 0) {
this.isbn = eingISBN;
b = true;
}
else {
this.isbn = isbn;
b = false;}
return b;
}
public String toString() {
String str = "";
str += "\n\n ISBN: " + isbn +
"\n Titel: " + titel +
"\n Autor: " + autor +
"\n Zustand: " + zustand +
"\n Ort: " + ort;
return str;
}
}
Java:
public class Regal {
Buch[] buecher;
String standort;
int freiePlaetze, anzahlBuecher, maxKapazitaet;
public Regal(int maxKapazitaet, String standort){
this.maxKapazitaet = maxKapazitaet;
this.buecher = new Buch[this.maxKapazitaet];
this.standort = standort;
this.freiePlaetze = maxKapazitaet;
}
public boolean addBuch(Buch neuesBuch) {
boolean bool = false;
for(int i = 0; i < buecher.length; i++) {
if(buecher[i] == null) {
buecher[i] = neuesBuch;
bool = true;
anzahlBuecher++;
freiePlaetze--;
break;
}
i++;
}
return bool;
}
public void removeBuch(String str) {
//for (int i = 0; i < buecher.length; i++) {
//if(str == buecher[i].isbn) {
//buecher[i] = null;
//anzahlBuecher--;
//}
//i++;
}
System.out.println(buecher[1].toString()); //bzw: System.out.println(buecher[i]);
}
public String getStandort() {
return standort;
}
public int getMaxKapazitaet() {
return maxKapazitaet;
}
public int getFreiePlaezte() {
return freiePlaetze;
}
public int getAnzahlBuecher() {
return anzahlBuecher;
}
public String toString(){
String str = "";
str += "maximale capacity: " + maxKapazitaet + "\n standort: " + standort +
"\n Buecher enthalten: ";
for(int i = 0; i < buecher.length; i++) {
if(buecher[i] != null) {
str += "\n\n" + buecher[i].toString();
}
}
return str;
}
}
Java:
public class TestklasseRegal {
public static void main(String[] args) {
Buch bams = new Buch("123", "titeleins", " denis", "Gebraucht", "sls");
Buch nana = new Buch("324-234", "titel2", "schriftsteller", "neuwertig", "sb");
Buch nunu = new Buch("42w3132","titel3", "schiller", "altpapiert", "koeln");
Buch monk = new Buch("7788","titel4","goethe","neuwertig","berlin");
Buch[] buecher = new Buch[4];
buecher[1] = bams;
Regal neu = new Regal(4, "HIER halt");
System.out.println(neu);
neu.addBuch(nana);
//System.out.println("\n" + neu);
neu.addBuch(bams);
//System.out.println("\n" + neu);
neu.addBuch(nunu);
System.out.println("\nerstes:\n" + neu);
//neu.addBuch(nana);
//System.out.println("\nzweites:\n" +neu);
neu.removeBuch("123");
}
}