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.
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 } |
chevron_right
filter_none
If we make i as static final then we must assign value to i with the delcaration.
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 } |
chevron_right
filter_none
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.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Recommended Posts:
- Static and non static blank final variables in Java
- Assigning long values carefully in Java to avoid overflow
- Final static variable in Java
- final variables in Java
- Final local variables in Java
- Are static local variables allowed in Java?
- Output of Java Programs | Set 45 (static and instance variables)
- Unreachable statement using final and non-final variable in Java
- Understanding "static" in "public static void main" in Java
- final keyword in java
- Using final with Inheritance in Java
- final vs Immutability in Java
- Final arrays in Java
- Blank Final in Java
- Instance variable as final in Java
Improved By : karthikthamilarasan



