son elemanıyla değiştirir ve bu siteyi kontrol ettim ve başkalarının benzer problemleri varmış gibi görünüyor ama onların statik alanlardan kaynaklanıyor. Ben 2 sınıfları, bir Soruları sınıf ve Sorular uzanan bir ScienceQuestions sınıfı vardır: Aynı I ScienceQuestions sınıfı ArrayList sciQuestions elemanların tüm örneğini zamanJava ArrayList.add() dizideki tüm öğeleri
import java.util.*;
public abstract class Questions {
public int questionID;
public int difficulty;
public boolean bAsked;
public String question;
public ArrayList<String> answers;
public String correctAnswer;
public Questions addQuestion(int id, int dif, boolean asked, String q, ArrayList<String> ans, String correct)
{
questionID = id;
difficulty = dif;
bAsked = asked;
question = q;
answers = ans;
correctAnswer = correct;
return this;
}
} Şimdi
import java.util.ArrayList;
public class ScienceQuestions extends Questions
{
public ArrayList<Questions> sciQuestions = new ArrayList<Questions>();
//Add default questions
public ScienceQuestions()
{
sciQuestions.add(0, addQuestion1());
sciQuestions.add(1, addQuestion2());
sciQuestions.add(2, addQuestion3());
System.out.println(sciQuestions.get(0).question + " " + sciQuestions.get(1).question + " " + sciQuestions.get(2).question);
}
//question 1
private Questions addQuestion1()
{
int questionID = 1;
int dif = 1;
boolean asked = false;
String question = "What is the chemical symbol for Magneisum?";
ArrayList<String> answers = new ArrayList<>();
String answer1 = "Mg", answer2 = "M", answer3 = "mg", answer4 = "MG";
String correctAnswer = answer1;
answers.add(answer1);
answers.add(answer2);
answers.add(answer3);
answers.add(answer4);
Questions thisQ = addQuestion(questionID, dif, asked, question, answers, correctAnswer);
return thisQ;
}
//question 2
private Questions addQuestion2()
{
int questionID = 1;
int dif = 2;
boolean asked = false;
String question = "What is the most accurate acceleration on Earth due to gravity as sea level?";
ArrayList<String> answers = new ArrayList<>();
String answer1 = "9.81 m/s", answer2 = "9.81 N/Kg", answer3 = "10 m/s^2", answer4 = "10 N/Kg";
String correctAnswer = answer2;
answers.add(answer1);
answers.add(answer2);
answers.add(answer3);
answers.add(answer4);
Questions thisQ = addQuestion(questionID, dif, asked, question, answers, correctAnswer);
return thisQ;
}
//question 2
private Questions addQuestion3()
{
int questionID = 1;
int dif = 2;
boolean asked = false;
String question = "What is the order of magnitude of the gravitational constant in standard units?";
ArrayList<String> answers = new ArrayList<>();
String answer1 = "*10^-10", answer2 = "*10^-13", answer3 = "*10^-12", answer4 = "*10^-11";
String correctAnswer = answer4;
answers.add(answer1);
answers.add(answer2);
answers.add(answer3);
answers.add(answer4);
Questions thisQ = addQuestion(questionID, dif, asked, question, answers, correctAnswer);
return thisQ;
}
}
vardır eklediğim son eleman olarak. Neden?
Teşekkür ederim, işe yarıyor. Bu yüzden işe yaramayacağı ilk kez, yeni sorular() oluşturmamanın sebebi oldu, bu yüzden addQuestion() sadece bu sınıfın bir "örneğini" etkiledi. – user3544582
Tam olarak: Bir örnek/bir nesne oluşturdunuz ve bu nesneyi arraylist'e eklediniz. Ama bu referansla, yeni nesneler oluşturulmuyor. AddQuestion yöntemi sırasında nesnenin özelliklerini değiştirdiniz ve arraylist'te get (index) dediğinizde, her indeks için aynı nesneyi alırsınız, dolayısıyla son ayarladığınız parametreler aynı olur. –