Can i declare a static variable inside static member function in Java?

寵の児 提交于 2020-01-11 19:45:35

问题


private static int Fibonoci(int n) {
static int first=0;
static int second=1;
static int sum;
if(n>0)

i am getting a error "Illegal Modifier" and if i remove static keyword there is no error and i need those variables to be static


回答1:


You can not declare varibale as static inside a method.
Inside method all variables are local variables that has no existance outside this method thats why they cann't be static.

static int first=0;
static int second=1;
static int sum;
private static int Fibonoci(int n) {
   //do somthing
}

You are trying to write code for fibonacci series and for that you don't need static variables for that just here is some links who describes the sol for that

http://crunchify.com/write-java-program-to-print-fibonacci-series-upto-n-number/

http://electrofriends.com/source-codes/software-programs/java/basic-programs/java-program-find-fibonacci-series-number/




回答2:


statics at function scope are disallowed in Java.




回答3:


The Root cause: Static Variables are allocated memory at class loading time because they are part of the class and not its object.

Now, if static variable is inside a method, then that variable comes under the method's scope and JVM will be unable to allocate memory to it.




回答4:


You can't declare a static variable inside a method, static means that it's a variable/method of a class, it belongs to the whole class but not to one of its certain objects. This means that static keyword can be used only in a 'class scope' i.e. it doesn't have any sense inside methods.

I don't know what you are trying to achieve, but if you really want these variables to be static then you can declare them as static fields in your class.




回答5:


Local variables cannot be declared static. In other words Static doesn't apply to local variables.

And I didn't see any use of declaring them static there.

Follow JLs on static fields

A static field, sometimes called a class variable, is incarnated when the class is initialized (§12.4).




回答6:


You have to define static variables as members in class. Variables those are defined within method are local variables and their lifecycles ends at the end of the method. local variables are call specific, member variables are object specific and static variables are class specific variables.




回答7:


You need to declare the static variables outside of the function:

static int first=0;
static int second=1;
static int sum;
private static int Fibonoci(int n) {
    if(n>0)



回答8:


You can not declare varibale as static inside a method. In otherwords we can say that, Local variables cannot be declared static.




回答9:


This varibles called Local Variables, they are inside method scop or constructor, they can't be instance or class variables.

private static int COUNT;// Class Variable
private static int Fibonoci(int n) {
 int a =3 ; // local variable
}

I need those variables to be static, okey , Why do you need this? because static variables used for special purpuse, however, you can create static fields like I did above code.



来源:https://stackoverflow.com/questions/17470609/can-i-declare-a-static-variable-inside-static-member-function-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!