Assigning values to static final variables in Java:
In Java, non-static final variables can be assigned in the constructor or through declarations. However, static final variables cannot be assigned in the constructor; they must be assigned a value in the declaration.
For example, the 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 }
If we make i statically final, then we must use the declaration to assign a value to i.
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 }
This behavior is obvious because static variables are shared among all objects of the class; creating new objects will change the same static variables, and if the static variable is the final variable, this is not allowed.
Australia
UK
UAE
Singapore
Canada
New
Zealand
Malaysia
USA
India
South
Africa
Ireland
Saudi
Arab
Qatar
Kuwait
Hongkong
Copyright 2016-2023 www.programmingshark.com - All Rights Reserved.
Disclaimer : Any type of help and guidance service given by us is just for reference purpose. We never ask any of our clients to submit our solution guide as it is, anywhere.