[英]Why can't the driver find a method in a class?
我編寫了一個Magic Square程序,並且即將完成,但是,不能從main方法中調用類中的方法之一。 我在該類中有兩種方法,但找不到兩種方法中的一種。 noRep
是確保輸入的數字不重復的方法。 當我嘗試從main方法使用它時,編譯器會說
找不到符號方法noRep(int [] [])
這是課程:
public class MagicClass
{
public static boolean noRep(int[][] square)
{
int[] one = new int[10];
for (int i = 1; i < 10; i++)
one[i] = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (square[i][j] < 1 || square[i][j] > 9)
return false;
one[square[i][j]]++;
}
}
for (int i = 1; i < 10; i++)
if (one[i] != 1)
return false;
return true;
}
public static boolean checkSums(int[][] square)
{
for (int i = 0; i < 3; i++)
{
int sum = 0;
for (int j = 0; j < 3; j++)
sum += square[i][j];
if (sum != 15)
return false;
}
for (int j = 0; j < 3; j++)
{
int sum = 0;
for (int i = 0; i < 3; i++)
sum += square[i][j];
if (sum != 15)
return false;
}
if (square[0][0] + square[1][1] + square[2][2] != 15)
return false;
if (square[0][2] + square[1][1] + square[2][0] != 15)
return false;
return true;
}
}
這是主要方法:
import java.util.*;
import java.util.Scanner;
public class MagicSquares {
public static void main(String[] args) {
int[][] square = new int[3][3];
Scanner input = new Scanner(System.in);
MagicClass MagicSqr = new MagicClass();
//checkFrequency Frequent = new checkFrequency(square); TESTING
//void Fre = MagicClass.checkFrequency (square); TESTING
System.out.println("Please enter your magic square.");
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
square[i][j] = input.nextInt();
if (checkSums(square && noRep(square)))
System.out.println("You have a magic square");
else
System.out.println("Not a magic square");
}
}
您在另一個類中調用noRep。 由於它是靜態方法(類級別方法),因此不需要實例。 使用以下命令調用它:
if (MagicClass.checkSums(square) && MagicClass.noRep(square))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.