Hi! Ich bin gerade dabei eine "bibliothek " zu programmieren. Beim testen bekomme ich aber eine nullpointer exception in der klasse regal in zeile 54. was läuft denn hier falsch?
- und das regal soll zunächst keine bücher enthalten... wurde das von mir korrekt umgesetzt oder habe ich da einen denkfehler drin? .. hier die klassen:
- und das regal soll zunächst keine bücher enthalten... wurde das von mir korrekt umgesetzt oder habe ich da einen denkfehler drin? .. hier die klassen:
Java:
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, Buch[] buecher, String standort){
this.maxKapazitaet = maxKapazitaet;
this.buecher = new Buch[this.maxKapazitaet];
this.standort = standort;
}
public boolean addBuch(Buch neuesBuch) {
int i = 0;
boolean bool = false;
if(i < this.buecher.length){
buecher[i] = neuesBuch;
i++;
bool = true;
}
else
if (i >= buecher.length){
bool = false;
}
return bool;
}
public void removeBuch(String str) {
}
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++) {
str += "\n\n" + buecher[i].toString();
}
return str;
}
}
Java:
public class TestklasseRegal {
public static void main(String[] args) {
Buch bams = new Buch("123", "titeleins", " hans", "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","titelbam","goethe","neuwertig","berlin");
Buch[] buecher = new Buch[3];
Regal neu = new Regal(3, buecher, "HIER halt");
System.out.println(neu);
neu.addBuch(monk);
System.out.println("\n" + neu);
neu.addBuch(bams);
System.out.println("\n" + neu);
neu.addBuch(nunu);
System.out.println("\n" + neu);
}
}