Open In App

Assigning values to static final variables in Java

Improve
Improve
Like Article
Like
Save
Share
Report

Assigning values to static final variables in Java: 
In Java, non-static final variables can be assigned a value either in constructor or with the declaration. But, static final variables cannot be assigned value in constructor; they must be assigned a value with their declaration.
For example, following program works fine. 
 

Java




class Test {
 
    // i could be assigned a value here
    // or constructor or init block also.
    final int i;
    Test()
    {
        i = 10;
    }
 
    // other stuff in the class
}


If we make i as static final then we must assign value to i with the declaration. 
 

Java




class Test {
 
    // Since i is static final,
    // it must be assigned value here
    // or inside static block .
    static final int i;
    static
    {
        i = 10;
    }
 
    // other stuff in the class
}


Such behavior is obvious as static variables are shared among all the objects of a class; creating a new object would change the same static variable which is not allowed if the static variable is final.

 


Last Updated : 14 Sep, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads