एक बार जब आप अंतिम चर प्रारंभ कर देते हैं तो आप इसके मान को और संशोधित नहीं कर सकते हैं। यानी आप केवल एक बार अंतिम चर के लिए मान निर्दिष्ट कर सकते हैं। यदि आप अंतिम चर के लिए मान निर्दिष्ट करने का प्रयास करते हैं तो एक संकलन समय त्रुटि उत्पन्न होगी।
उदाहरण
public class FinalExample { final int j = 100; public static void main(String args[]){ FinalExample obj = new FinalExample(); obj.j = 500; System.out.println(obj.j); } }
संकलन समय त्रुटि
FinalExample.java:6: error: cannot assign a value to final variable j obj.j = 500; ^ 1 error
"अंतिम" कार्यक्षमता प्राप्त करना
वास्तव में अंतिम कीवर्ड का उपयोग किए बिना अंतिम कार्यक्षमता प्राप्त करने के लिए -
सेटर विधि का उपयोग करके चर को निजी बनाएं और मान सेट करें जैसे कि यदि आप इसे दूसरी बार लागू करने का प्रयास करते हैं तो इसे पिछले मान को सेट करना चाहिए या अपवाद फेंकना चाहिए।
उदाहरण
public class FinalExample { private Integer num; public void setNum(int num){ this.num = this.num == null ? num : this.num; } private String data; public void setData(String data) { this.data = this.data == null ? data : demo(); } public String demo() { String msg = "You cannot set value to the variable data for the second time"; throw new RuntimeException(msg); } public static void main(String args[]){ FinalExample obj = new FinalExample(); obj.setNum(200); System.out.println(obj.num); obj.setNum(500); System.out.println(obj.num); obj.setData("hello"); obj.setData("sample data"); } }
आउटपुट
200 200 Exception in thread "main" java.lang.RuntimeException: You cannot set value to the variable data for the second time at SEPTEMBER.remaining.FinalExample.demo(FinalExample.java:15) at SEPTEMBER.remaining.FinalExample.setData(FinalExample.java:12) at SEPTEMBER.remaining.FinalExample.main(FinalExample.java:26)पर