final variables in Java
In Java, we can use final keyword with variables, methods, and classes. When the final keyword is used with a variable of primitive data types such as int, float, etc), the value of the variable cannot be changed.
Example 1: Usage of final with primitive datatype
Java
// Java Program to illustrate Use of Final Keyword // With Primitive Datatypes // Main class class GFG { // Main driver method public static void main(String args[]) { // Final primitive variable final int i = 10 ; i = 30 ; // Error will be generated above } } |
Output:
Now you must be wondering what if we do use final keyword non-primitive variables, let us explore the same as we did above with the help of an example.
Note: Non-primitive variables are always references to objects in Java, the members of the referred object can be changed. final for non-primitive variables just means that they cannot be changed to refer to any other object.
Example 2: Usage of final with primitive datatype
Java
// Java Program to illustrate Use of Final Keyword // With Primitive Datatypes // Class 1 class Helper { int i = 10 ; } // Class 2 // main class class GFG { // Main driver method public static void main(String args[]) { final Helper t1 = new Helper(); t1.i = 30 ; // Works // Print statement for successful execution of // Program System.out.print( "Successfully executed" ); } } |
Successfully executed
Note: A final variable can’t be declared inside a function, this is so because scope of local variables of a function are limited to scope of function and declaring it their will be against the principle of immutability. If program demands a constant value then the final variable should be declared at class level and may be used in function.