If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
java programming language में final एक predefined non-access modifier है जिसका main purpose classes , methods और variables के लिए restrict करना है। final keyword का use 3 contexts में किया जाता है -
final variable वो variables होते हैं , जिन्हे एक बार initialize के जाने के बाद values को modify / update नहीं कर सकते हैं। जिस तरह से बाकी languages like PHP , JavaScript में constant variables होते हैं , उसी तरह Java में final variables होते हैं।
final variables, Identifier होते हैं जिन्हे हम normal variables की तरह ही define करते हैं , हालाँकि normal Variables की तरह इनकी value Immutable होती , means हम program execution के समय इनकी value को change नहीं कर सकते हैं। जैसे normal variable को Define करके हम Runtime पर भी new value assign करके change करते थे।
Understanding Identifier - identifier का use program में किसी entity को Identify करने के लिए किया जाता है, ये unique होते है, define करने के बाद हम इन्हे program में कही भी use कर सकते हैं।
File : FinalVariable.java
public class FinalVariable
{
public static void main(String[] args)
{
// define final variables.
final String name = "Rahul Rajput";
System.out.println("Name : " + name);
}
}
javac FinalVariable.java
java FinalVariable
Name : Rahul Rajput
तो कुछ इस तरह से हम java में final variables को define करते हैं। अब अगर आप final variable की value को change करने की कोशिश करेंगे तो कुछ इस तरह से error आएगी।
Error : FinalVariable.java
final String name = "Ravi";
name = "Raju";
FinalVariable.java:8: error: cannot assign a value to final variable name
name = "Raju";
^
1 error
ऐसा final variables जिसकी कोई value नहीं है उसे blank final variable या uninitialized final variable कहते हैं।
Read more about final variables in java
Inheritance में method override को रोकने के लिए method को final method define किया जाता है। अगर आप चाहते हैं कि parent class के method को child class में modify / override नहीं किया जाए तो उस method को final method define कर सकते हैं। और अगर override करते हैं तो error आएगी।
File : Hero.java
class Bike {
// define final method
final void run() {
System.out.println("The bike is running");
}
}
public class Hero extends Bike{
// override method.
void run() {
System.out.println("running safely with 100kmph");
}
public static void main(String args[]) {
Hero h= new Hero();
h.run();
}
}
javac Hero.java Hero.java:10: error: run() in Hero cannot override run() in Bike void run() { ^ overridden method is final 1 error
final method को आप child class में access तो कर सकते हैं लेकिन उसे override नहीं कर सकते हैं।
final method की तरह ही अगर आप चाहते हैं की किसी class को दूसरी class inherit न कर पाए तो , उस class को as a final class define कर दीजिये।
File : Hero.java
// define final class
final class Bike {
}
// now extend final class.
public class Hero extends Bike{
public static void main(String args[]) {
}
}
javac Hero.java Hero.java:10: error: cannot inherit from final Bike class Hero extends Bike{ ^ 1 error