Hallo,
ich bin noch relativ am Anfang, was die Programmierung mit Java angeht und habe auch direkt
ein kleines Problem, wobei ich mich etwas blöd anstelle.
Ich habe zur Übung ein Programm erstellt, welches Spiele in einer Lagerliste registrieren soll und bei der Suche anhand der Lager ID identifiziert werden sollen.
Nur bekomme ich jedes mal nach Aufruf von mehr als einem Spiele eine Null Pointer Exception.
Mein Konstruktor der Klasse Game sollte eigentlich bei der Erstellung eines neuen Game Objekts die ID automatisch um eins hochzählen. Ich verstehe nur nicht wo der Fehler liegt.
Wäre wirklich super, wenn mir hier jemand weiterhelfen könnte.
ich bin noch relativ am Anfang, was die Programmierung mit Java angeht und habe auch direkt
ein kleines Problem, wobei ich mich etwas blöd anstelle.
Ich habe zur Übung ein Programm erstellt, welches Spiele in einer Lagerliste registrieren soll und bei der Suche anhand der Lager ID identifiziert werden sollen.
Nur bekomme ich jedes mal nach Aufruf von mehr als einem Spiele eine Null Pointer Exception.
Mein Konstruktor der Klasse Game sollte eigentlich bei der Erstellung eines neuen Game Objekts die ID automatisch um eins hochzählen. Ich verstehe nur nicht wo der Fehler liegt.
Wäre wirklich super, wenn mir hier jemand weiterhelfen könnte.
Java:
public class Game {
private String titel;
private String genre;
private String entwickler;
private String publisher;
private int usk;
private int lagerId;
private int id = 0;
public Game(String titel, String genre, String entwickler, String publisher, int usk){
this.titel = titel;
this.genre = genre;
this.entwickler = entwickler;
this.publisher = publisher;
this.usk = usk;
this.lagerId = id;
id++;
}
public String getTitel(){
return titel;
}
public String getGenre(){
return genre;
}
public String getEntwickler(){
return entwickler;
}
public String getPublisher(){
return publisher;
}
public int getUsk(){
return usk;
}
public int getLagerId(){
return lagerId;
}
}
Java:
public class GameRegister {
Game[] gameList = new Game[100];
public void registerGame(Game game){
for(int i = 0; i < gameList.length; i++){
if(gameList[i] == null){
gameList[i] = game;
}
}
}
public Game getGame(int lagerId){
for(int i = 0; i < gameList.length; i++){
if(gameList[i].getLagerId() == lagerId){
return gameList[i];
}
}
System.out.println("Das Spiel befindet sich nicht im Lager!");
return null;
}
}
Java:
public class GameFinder {
GameRegister register = new GameRegister();
Game gameToCheck;
public GameFinder(GameRegister register){
this.register = register;
}
public void checkGame(int lagerId){
gameToCheck = register.getGame(lagerId);
}
public void printGame(){
System.out.println("Titel: " +gameToCheck.getTitel());
System.out.println("Genre: " +gameToCheck.getGenre());
System.out.println("Entwickler: " +gameToCheck.getEntwickler());
System.out.println("Publisher: " +gameToCheck.getPublisher());
System.out.println("USK: " +gameToCheck.getUsk());
System.out.println("ID: " +gameToCheck.getLagerId());
System.out.println("\n");
}
}
Java:
public class GameSuche {
public static void main(String[] args){
Game game1 = new Game("FarCry 4", "FPS", "Crytech","EA", 18);
Game game2 = new Game("Battlefield 4", "FPS", "Dice", "EA", 18);
Game game3 = new Game("Witcher 3", "RPG", "CD Projekt Red", "Bandai Namco Entertainment", 18);
Game game4 = new Game("Metro Last Light", "FPS", "4A Games", "Deep Silver", 18);
GameRegister register = new GameRegister();
register.registerGame(game1);
register.registerGame(game2);
register.registerGame(game3);
register.registerGame(game4);
GameFinder finder = new GameFinder(register);
finder.checkGame(game1.getLagerId());
finder.printGame();
finder.checkGame(game2.getLagerId());
finder.printGame();
finder.checkGame(game3.getLagerId());
finder.printGame();
finder.checkGame(game4.getLagerId());
finder.printGame();
}
}
Zuletzt bearbeitet: