不能引用非静态方法toString((,另一个是说我不能有静态toString,但当我更改它并转到main时,它说我需要一个静态toString。我想知道是否有人能理解它,因为我引用了课堂上的多个代码和笔记,但无法理解。
import java.util.Scanner;
import java.util.Arrays;
class Main
{
public static void main(String[] args)
{
String[] answer = new String();
answerArray();
Quiz Quiz1 = new Quiz();
Quiz.toString();
System.out.print("Number of Correct Answers: ");
System.out.println(Quiz.totalCorrect(answerArray[]));
System.out.print("Number of Mistakes: ");
System.out.println(Quiz.totalMistakes(answerArray[]));
System.out.println("The Student is"+Quiz.isPassing());
}
public static String answerArray()
{
Scanner scan = new Scanner(System.in);
String[] answerArray = new String[10];
for (int i = 0; i < answerArray.length; i++)
{
System.out.println("Enter Grade "+i+1);
answerArray[i]=scan.next;
answerArray[i]=answerArray[i].toLowerCase();
}
return answerArray;
}
}
测验类别:
import java.util.Arrays;
class Quiz
{
public static void main(String[] args) {
String[] answerKey = new String[10];
String[] studentAns = new String[answerKey.length];
answerKey[0] = B;
answerKey[1] = D;
answerKey[2] = C;
answerKey[3] = A;
answerKey[4] = E;
answerKey[5] = A;
answerKey[6] = B;
answerKey[7] = A;
answerKey[8] = E;
answerKey[9] = B;
}
public static void studentAns(String answerKey[])
{
for (int i = 0; i < answerArray.length; i++)
studentAns[i]=answerKey[i];
for (int i=0; i<answerKey.length;i++)
studentAns[i]=studentAns[i].toUpperCase();
}
public static String getstudentAns()
{
return studentAns;
}
public static int totalCorrect(String answerArray[])
{
int numCorrect=0;
for (int i = 0; i < answerArray.length; i++)
{
if (answerArray[i].equals(studentAns[i]))
numCorrect=numCorrect+1;
}
return numCorrect;
}
public static int totalMistakes(String answerArray[])
{
int numMistakes=0;
for (int i = 0; i < answerKey.length; i++)
{
if (answerArray[i]!=studentAns[i])
numMistakes=numMistakes+1;
}
return numMistakes;
}
public static boolean isPassing()
{
if (totalCorrect-numMistakes>=7)
return PASSED;
else
return FAILED;
}
public static String toString(String answerArray[])
{
String firstLine = "ANSWER KEY t Student's Answers";
for (int i = 0; i < answerKey.length; i++)
{
String full=(i+1)+") "+answerArray[i]+"tt"+(i+1)+studentAns[i]+"n";
return full;
}
}
}
这里您正在尝试使用一个静态方法toString((,但它不存在,因为类只有非静态方法toString((。
Quiz.toString();
要使用静态方法,您应该改为写以下内容:
Quiz.toString(answerArray());