此代码的输出是什么?用它来研究即将开始的考试:
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”错误。
答案 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);
}
}