我把我正在做的3个文件移到了新的包里,现在又出现了新的错误。我还在让它工作的过程中。这个错误是 "问题不能被解析到一个类型"。我只是在学习Java,而且对它很陌生。我需要把其他文件也加进去吗?EDIT : 这是我加到包里的问题,但是我现在这个问题上出现了一个错误 "静态字段Question.nQuestion应该以静态方式访问",我不知道为什么?我用两个星号把有错误的部分高亮显示出来了
package com.quiz6;
import javax.swing.JOptionPane;
public abstract class Question {
static int nCorrectAnswer = 0;
static int nQuestion = 0;
String question;
String correctAnswer;
//abstract method ask
public abstract String ask();
//the same method
public void check() {
String answer = ask();
**this.nQuestion++;**
if (answer.equalsIgnoreCase(this.correctAnswer)) {
JOptionPane.showMessageDialog(null, "Correct!");
**this.nCorrectAnswer++;**
} else {
JOptionPane.showMessageDialog(null, "Incorrect");
}
}
public static void showResults() {
JOptionPane.showMessageDialog(null, nCorrectAnswer + " correct out of questions " + nQuestion);
}
}
package com.quiz6;
import com.quiz6.MultipleChoiceQuestion6;
import com.quiz6.TrueFalseQuestion;
public class quiz6 {
public static void main(String[] args) {
**
Question question;
question = new MultipleChoiceQuestion6("What is the capitol of Singapore?", **
"Singapore",
"Dublin",
"Tokyo",
"Shanghai",
"Bangkok.",
"A");
question.check();
question = new MultipleChoiceQuestion6("What is the capitol of America?",
"New York",
"San Francisco",
"Alaska",
"Washington DC",
"Minnesota",
"d");
question.check();
question = new MultipleChoiceQuestion6("What is the capitol of Europe?",
"Ireland",
"Germany",
"Czech Republic",
"France",
"Trick Question",
"e");
question.check();
question = new MultipleChoiceQuestion6("Who accidentally overwrote their Quiz file?",
"Yourself",
"Johann",
"Norberto",
"Trump",
"Me!",
"e");
question.check();
//true or false questions here
question = new TrueFalseQuestion("Sharks are mammals", "FALSE");
question.check();
question = new TrueFalseQuestion("Spiders have six legs.", "FALSE");
question.check();
question = new TrueFalseQuestion("My brain is sore from Java.", "TRUE");
question.check();
//we show the results of the quiz
question.showResults();
}
}
"Question cannot be resolved to a type "你得到这个错误是因为程序无法找到名为'Question'的类.我曾经发生过一次非常类似的事情,当该文件或类在同一个包中不可用时,就会发生这种情况,所以,你需要在同一个包中复制'Question'类,希望这将解决这个问题。
请检查你为你的类使用的访问修饰符。
如果你没有为你的类指定任何访问修饰符,这意味着...。default
修饰符,那么你的类只能在同一个包中被访问。
如果你想从其他包中使用你的类,可以尝试在你的类中加入 public
访问修饰符在你的类前。
前
public class Question {
}