为什么我不能在java构造函数中使用静态变量?

Dee*_*rma 1 java static constructor static-variables

编译说illegal modifier for parameter i.
请告诉我我做错了什么.为什么我不能在Java构造函数中使用静态变量?

class Student5{  

    Student5() {  
        static int i = 0;
        System.out.println(i++);  
    }

    public static void main(String args[]){  
        Student5 c1 = new Student5();
        Student5 c2 = new Student5();
        Student5 c3 = new Student5();
    }
}  
Run Code Online (Sandbox Code Playgroud)

Ted*_*opp 7

因为你在哪里声明i:

Student5(){  
    static int i=0;
    System.out.println(i++);  
}
Run Code Online (Sandbox Code Playgroud)

编译器将其视为构造函数中的局部变量:局部变量不能声明为static.有关允许局部变量使用哪些修饰符的详细信息,请参阅Java语言规范的第14.4节.

从代码似乎试图做什么来判断,您可能希望i成为静态成员Student5,而不是构造函数中的局部变量:

class Student5{
    private static int i = 0;

    Student5(){  
        System.out.println(i++);  
    }

. . .
}  
Run Code Online (Sandbox Code Playgroud)