What is a blank final variable in Java?
The blank final variable in Java is a final variable that is not initialized while declaration, instead they are initialized in a constructor. Java compiler will complain if a blank final variable is not initialized during construction. If you have more than one constructor or overloaded constructor in your class then a blank final variable must be initialized in all of them, failing to do so is a compile-time error in Java. Alternatively, you can use constructor chaining to call one constructor from another using this keyword, in order to delegate initialization of a blank final variable in Java. In this Java tutorial, we will see what is blank final variable is in Java and a code example on How to use a blank final variable.
Blank Final variable in Java with Example
The blank final variable is like any other final variable but must be initialized in the constructor as shown in the below example. If you don't initialize or forget to initialize a blank final variable then the compiler will complain about it by throwing a compile-time error. static and final variables are treated as compile-time constant and their value is replaced during compile time only.
Java Program to use a blank final variable
/**
*
* Java program to demonstrate that blank final variable in Java
*
* Java program to demonstrate that blank final variable in Java
* must be initialized in the constructor.
* Failing to initialized the blank final variable will result in a compile-time error.
* @author http://java67.blogspot.com
*/
public class BlankFinalVariable {
private final int blankFinalVariable; //must be initialized in a constructor
public BlankFinalVariable(){
this(6); // this is Ok
//this.blankFinalVariable = 3;
}
public BlankFinalVariable(int number){
this.blankFinalVariable = number;
}
public static void main(String args[]) {
BlankFinalVariable clazz = new BlankFinalVariable();
System.err.println("Value of blank final variable in Java : " + clazz.blankFinalVariable);
}
}
Output:
Value of blank final variable in Java : 6
Output:
Value of blank final variable in Java : 6
* Failing to initialized the blank final variable will result in a compile-time error.
* @author http://java67.blogspot.com
*/
public class BlankFinalVariable {
private final int blankFinalVariable; //must be initialized in a constructor
public BlankFinalVariable(){
this(6); // this is Ok
//this.blankFinalVariable = 3;
}
public BlankFinalVariable(int number){
this.blankFinalVariable = number;
}
public static void main(String args[]) {
BlankFinalVariable clazz = new BlankFinalVariable();
System.err.println("Value of blank final variable in Java : " + clazz.blankFinalVariable);
}
}
Output:
Value of blank final variable in Java : 6
Output:
Value of blank final variable in Java : 6
That's all on What is the blank final variable in Java and how to use them. If you want to learn more about What is final variable or final class is in Java, then see that link. Another important point to note is that you can not override the final method and can not subclass the final class, those will result in a compile-time error.
Other Java fundamental tutorial you may like
When do some one should use blank final variable? Do you have a genuine use case for blank final variables in Java ?
ReplyDeleteI think, if you are initializing final variable at the time of object creation, and especially by value passed to constructor, than use blank final variable. For example, you can pass date of birth while creating a Person class, if this would be stored in blank final variable, you can not change it during object's life time.
Deletecan we initialize this without constructor like in other methods...???
ReplyDeleteNo u cnt initialize this without constructor
DeleteYes..we can using Instance initialisation block.
Delete