Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, κάνω μια εργασία και θελω μια μέθοδος να δεχεται σαν ορισμα τα στοιχεια ενος πινακα απο μια αλλη μέθοδο στην ίδια κλάση 

Η μέθοδος που εχω στην μια κλάση είναι 

public void QuestionOfAthletics(){

questAns[1][0]="Πόσες συμμετοχές έχει η Εθνική Ελλάδος σε παγκόσμιο κύπελλο;";
        questAns[1][1]="3";
        questAns[1][2]="1";
        questAns[1][3]="4";
        questAns[1][4]="6";}
 
public void setQues(int r,String a,String b, String c, String d, String e){
       a=questAns[r][0];
       b=questAns[r][1];
       c=questAns[r][2];
       d=questAns[r][3];
       e=questAns[r][4];

Και στην main εχω

Questions q2=new Questions();

 

 ran=c.getArandomNumber(1);
    q2.QuestionOfAthletics();
    q2.setQues(ran, quest, ans1, ans2, ans3, ans4);
   
    ArraysWithQuestions ko=new ArraysWithQuestions(quest,ans1,ans2,ans3,ans4);
 
Το πρόγραμμα δεν τρεχει και μου βγάζει error στο q2.QuestionOfAthletis();
 
Exception in thread "main" java.lang.NullPointerException
at Buzz.Questions.QuestionOfAthletics(Questions.java:48)
at Buzz.Main.main(Main.java:37)
C:\Users\George-TOSH\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
 
helppp... :unsure:

 

Δημοσ.

Βάλε όλο τον κώδικά σου και βάλτον μέσα σε code. Είναι το κουμπάκι "<>" που έχει ο κειμενογράφος του site. 

 

Και λέω όλο τον κώδικα γιατί έχεις πράγματα που δεν γνωρίζουμε. 

Π.χ. 

Questions q2=new Questions();

Τι είναι αυτό;

 

Επίσης ο πίνακάς σου που είναι δηλωμένος; κτλ.

Αυτό που καταλαβαίνω εγώ είναι ότι το σφάλμα που σου βγάζει αφορά αν μπορώ να καταλάβω την QuestionOfAthletics(). Το array questAns από που προκύπτει;

Δημοσ.

public class Main {
public static void main(String[] args){
String quest = null ,ans1 = null,ans2 = null,ans3 = null,ans4 = null;

int ran;
Scanner scanner=new Scanner(System.in);

Questions q2=new Questions();//Κλάση που περιεχει ερωτησεις

int i=0;
ran=c.getArandomNumber(1);
q2.QuestionOfAnimals();//Μεθοδος της κλασης Question
q2.setQues(ran, quest, ans1, ans2, ans3, ans4);


ArraysWithQuestions ko=new ArraysWithQuestions(quest,ans1,ans2,ans3,ans4);

ko.getRandom();
}

public class Questions {
public String questAns[][];
public String questAnsA[][];
public void QuestionOfAthletics(){
questAns[0][0]="Ερωτηση 1;";
questAns[0][1]="Απαντ 1";
questAns[0][2]="Απαντ 2";
questAns[0][3]="Απαντ 3";
questAns[0][4]="Απαντ 4";

questAns[1][0]="Πόσες συμμετοχές έχει η Εθνική Ελλάδος σε παγκόσμιο κύπελλο;";
questAns[1][1]="3";
questAns[1][2]="1";
questAns[1][3]="4";
questAns[1][4]="6";
questCorAns[0]="Απαντ 2";
questCorAns[1]="3";
}
}
Δημοσ.

Δεν ξέρω τόσο καλά java, αλλά νομίζω ότι φταίει το ότι ορίζεις μη αρχικοποιημένους πίνακες. Δοκίμασε να βάλεις μέγεθος πχ [2][5] και [2] για να δεις αν θα δουλεψει.

Δημοσ.

ναι οντως αυτο εφταιγε. το πέτυχα πριν λιγο... μηπως ξερεις πως τα στοιχεια του πίνακα μπορώ να τα βαλω σαν ορισμα σε μια αλλη μέθοδο?

Δημοσ.

Φτιάξε δομητή στην κλάση σου και όρισε δύο μεταβλητές ως ορίσματα. 

 

Μέσα στο Questions

public Questions(){
}

public Questions(Integer A, Integer B, Integer C){
   questAns[][] = new String [A][B];
   questCorAns[] = new String [C]; //παρατηρώ ότι αντί για αυτό ορίζεις ένα δισδιάστατο πίνακα με άλλο όνομα
}

Και στη main

Questions q2 = new Questions(2,5,2); //ή κάτι τέτοιο.
Δημοσ.

Τα μεγέθη των πινάκων. Είναι ακέραιοι αριθμοί. Κοίτα τα νούμερα που έχω γράψει είναι με βάση τα παραπάνω παραδείγματα του κώδικά σου. 

Δημοσ.

Ποσταρε ολο το κωδικα σου και προσπαθησε να χρησιμοποιεις camelCase στην ονομασια τον μεταβλητων. Μετα θα σου βρουμε τη λυση να εισαι σιγουρος.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...