Hallo zusammen,
Ich bin ein Java Neuling und kämpfe mich momentan durch "Java ist auch eine Insel" durch.
Mit der Zeit wird dann das doch sehr trocken und daher habe ich ein kleines Projekt zum Anwenden des Gelernten begonnen.
Leider stecke ich schon fest und suche inzwischen seit Stunden einen Fehler im Code.
Mein Projekt umfasst bisher die Klassen "Card"
und "CardSet"
Wenn ich das ganze nun ausführen möchte erhalte ich die Meldung:
Exception in thread "main" java.lang.NullPointerException
at CardSet.main(CardSet.java:48) (Hier Zeile 21 )
Ich hab schon alles mögliche ausprobiert, doch ich finde den Fehler einfach nicht.
Ich bin zum Schluss gekommen, dass das Problem in der Klasse "CardSet" sein muss, den wenn ich den Code unter CardSet.main durch folgenden ersetze,
funktioniert alles einwandfrei und gibt in der Konsole wie erwartet
10
Ace of Spades
aus.
Kann mir vielleicht jemand bei diesem Problem weiterhelfen??
Um es kürzer zu halten hab ich nur den aus meiner Sicht für das Problem relevanten Code eingefügt, aber falls benötigt liefere ich natürlich den Rest nach.
Schon mal danke
HureBabylon
Ich bin ein Java Neuling und kämpfe mich momentan durch "Java ist auch eine Insel" durch.
Mit der Zeit wird dann das doch sehr trocken und daher habe ich ein kleines Projekt zum Anwenden des Gelernten begonnen.
Leider stecke ich schon fest und suche inzwischen seit Stunden einen Fehler im Code.
Mein Projekt umfasst bisher die Klassen "Card"
Java:
public class Card {
// attributes:
int rank; // rank of card ( 0-12 : ace, 2-10, jack, queen, king )
int suit; // suit of card ( 0-3 : spades, hearts, diamonds, cubs )
// constructors:
Card( int a , int b ){ // ( rank of card , suit of card )
rank = a;
suit = b;
}
Card(){ // uses default value 0 for both rank and suit => Ace of Spades
rank = 0;
suit = 0;
}
}
Java:
import java.util.*;
public class CardSet {
// attributes:
Card[] cardsArray; // array containing Cards
// constructor:
CardSet(int a){
Card[] cardsArray = new Card[a];
for (int i = 0; i < cardsArray.length; i++) {
cardsArray[i] = new Card();
}
}
/*-------------------------testing------------------------------------*/
public static void main(String[] args) {
CardSet spades = new CardSet(13);
for (int i = 0 ; i < spades.cardsArray.length ; i++) {
spades.cardsArray[i].rank = i;
spades.cardsArray[i].suit = 0;
}
spades.printCardSet();
spades.shuffle();
spades.printCardSet();
}
}
Wenn ich das ganze nun ausführen möchte erhalte ich die Meldung:
Exception in thread "main" java.lang.NullPointerException
at CardSet.main(CardSet.java:48) (Hier Zeile 21 )
Ich hab schon alles mögliche ausprobiert, doch ich finde den Fehler einfach nicht.
Ich bin zum Schluss gekommen, dass das Problem in der Klasse "CardSet" sein muss, den wenn ich den Code unter CardSet.main durch folgenden ersetze,
Java:
Card[] cardsArray = new Card[10];
System.out.println(cardsArray.length);
for (int i = 0; i < cardsArray.length; i++) {
cardsArray[i] = new Card();
}
System.out.println(cardsArray[0].getName());
funktioniert alles einwandfrei und gibt in der Konsole wie erwartet
10
Ace of Spades
aus.
Kann mir vielleicht jemand bei diesem Problem weiterhelfen??
Um es kürzer zu halten hab ich nur den aus meiner Sicht für das Problem relevanten Code eingefügt, aber falls benötigt liefere ich natürlich den Rest nach.
Schon mal danke
HureBabylon