簡體   English   中英

驅動程序為什么無法在類中找到方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM