输出未知方法foo

时间:2014-12-08 06:43:06

标签: java output

此代码的输出是什么?用它来研究即将开始的考试:

public void print(int[] nums)
{
    for (int i = 0; i < nums.length; ++i)
        System.out.print(nums[i] + " ");
    System.out.println("\n");
}

public void foo(int[] nums)
{
    this.print(nums);
    for (int i = 0; i < 3; ++i)
    {
        for (int j = 0; j < (nums.length - 1); ++j)
            if (nums[j] > nums[j + 1])
            {
                int tmp = nums[j];
                nums[j] = nums[j + 1];
                nums[j+ 1] = tmp;
            }
        System.out.print(i + ": ");
        this.print(nums);
    }
}

使用此输入:

int[] nums = {9, 5, 8, 4, 2, 7, 3, 6, 1};

foo(nums);

试图自己运行它,无法让它继续编译保持接收“找不到方法foo”错误。

2 个答案:

答案 0 :(得分:2)

我在代码示例中看不到起点,所以确保在IDE控制台中看不到任何输出:)只需创建类,我们称之为“ATest”,将主方法和构造函数添加为

ATest(){
foo(nums);
}

public static void main(String [] args){new ATest();}

... 你不能直接从main方法调用foo方法导致foo方法不是静态的 ...

但请在下次阅读更多教程

Goog运气

答案 1 :(得分:0)

你需要一个主方法,一个程序的入口点。

还将foo方法封装在一个类中以便能够调用它。

 public static void main(String[] args)
    {
       int[] nums = {9, 5, 8, 4, 2, 7, 3, 6, 1};

       foo(nums);

    }

所以你的决赛将如下:

public class Test{

public Test()
{

}

public void print(int[] nums)

{

        for (int i = 0; i < nums.length; ++i)
               System.out.print(nums[i] + " ");
       System.out.println("\n");
}

public void foo(int[] nums)
{
      this.print(nums);
    for (int i = 0; i < 3; ++i)
    {
         for (int j = 0; j < (nums.length - 1); ++j)
                   if (nums[j] > nums[j + 1])
                     {
                          int tmp = nums[j];
                          nums[j] = nums[j + 1];
                          nums[j+ 1] = tmp;
                       }
           System.out.print(i + ": ");
           this.print(nums);
         }

      }

public static void main(String[] args)
        {
           int[] nums = {9, 5, 8, 4, 2, 7, 3, 6, 1};
           Test t = new Test();
           test.foo(nums);

        }


}