Java 未知方法foo的输出

Java 未知方法foo的输出,java,output,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

这段代码的输出是什么?用它来准备即将到来的考试:

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);
    }
}

我自己尝试运行它,但无法将其编译,一直收到“找不到方法foo”错误。

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

ATest(){
foo(nums);
}

public static void main(String [] args){new ATest();}
…您不能直接从主方法调用foo方法,因为foo方法不是静态的

但下次请务必阅读更多教程


运气好

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

还将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);

        }


}
公共类测试{
公开考试()
{
}
公共作废打印(整数[]nums)
{
对于(int i=0;inums[j+1])
{
int tmp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=tmp;
}
系统输出打印(i+“:”);
本.打印(nums);
}
}
公共静态void main(字符串[]args)
{
int[]nums={9,5,8,4,2,7,3,6,1};
测试t=新测试();
test.foo(nums);
}
}

如果您对代码进行格式化和缩进,您将立即看到问题。@leppie我尝试了所有方法,甚至重写了它,这是最后的帮助手段。我在代码中找不到主类!!!可能这就是这里的错误来源……好吧,也许问题不在格式上。你能告诉我你调用
输入的整个方法是从哪里来的吗?这就是我所得到的,我所有的东西都已经发布了。我的最佳猜测是,输入进入主方法,并以某种方式执行。我卡住了
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);

        }


}