※ 引述《starlichin (白星羽)》之铭言:
: 我想写一个array的constructor还有一个average的method去计算其平均值
: 程式码如下:
: 但执行后会出现inner class cannot have static declaration的错误
: 我是初学者看不出问题出在哪 :(
: 麻烦版上的强者解答了~
public class MainClass
{
public static void main(String[] args)
{
int[] nums = { 2, 4, 6, 8, 10, 12 };
MainClass mainClass = new MainClass();
InnerClass innerClass = mainClass.new InnerClass(nums);
System.out.println(innerClass.mean());
}
private class InnerClass
{
private int[] nums;
public InnerClass(int[] nums)
{
this.nums = nums;
}
public double mean()
{
double sum = 0.0;
for (int num : nums)
{
sum += (double) num;
}
return (sum / nums.length);
}
}
}
根据你的例子改写的小程式
这个class包class的用法是称作inner class或nested class
平常开发大型专案时是不太会使用这种用法 毕竟会让程式看起来太过复杂
但是作为了解Java的特性 试试看倒是不错
你的问题很简单 error message就已经告知你语法上哪里有错
"inner class cannot have static declaration"
先了解这串字的意义 再来修改就可以了