-2

テスターをコンパイルすると、9行目に次のように表示されます。

非静的メソッド towersOfHanoi(int, int, int, int) は静的コンテキストから参照できません

towersOfHanoi メソッドに到達できないのはなぜですか?

以下の2つのクラスを提供しました。

import java.io.*;
import java.util.*;
public class Tester
{
    public static void main(String args[])
    {
        Scanner swag = new Scanner(System.in);
        int yolo = swag.nextInt();
        TowersOfHanoi.towersOfHanoi(yolo,1,3,2);
    }
}
public class TowersOfHanoi
{
    public void towersOfHanoi (int N, int from, int to, int spare)
    {
        if(N== 1) 
        {
            moveOne(from, to);
        }
        else 
        {
            towersOfHanoi(N-1, from, spare, to);
            moveOne(from, to);
            towersOfHanoi(N-1, spare, to, from);
        }
    }  

    private void moveOne(int from, int to)
    {
        System.out.println(from + " ---> " + to);
    }
}
4

2 に答える 2

0

TowersOfHanoi.towersOfHanoi(int,int,int,int) メソッドをstaticにします。

public static void towersOfHanoi (int N, int from, int to, int spare)
{

またはそれ以上、

TowersOfHanoi オブジェクトをインスタンス化してから、towersOfHanoi メソッドを、クラスで呼び出す代わりに呼び出します。

于 2014-03-10T04:42:51.133 に答える
0

問題はこの行です

TowersOfHanoi.towersOfHanoi(yolo,1,3,2);

オブジェクトを作成TowersOfHanoiしてそのメソッドを呼び出すか、メソッドTowersOfHanoi.towersOfHanoiを静的として宣言します。

于 2014-03-10T04:43:34.033 に答える