यदि आप एक चर स्थिर और अंतिम घोषित करते हैं तो आपको इसे या तो घोषणा पर या स्थिर ब्लॉक में प्रारंभ करने की आवश्यकता है। यदि आप इसे कंस्ट्रक्टर में इनिशियलाइज़ करने का प्रयास करते हैं, तो कंपाइलर मानता है कि आप इसके लिए वैल्यू को फिर से असाइन करने का प्रयास कर रहे हैं और एक कंपाइल टाइम एरर उत्पन्न करता है -
उदाहरण
class Data { static final int num; Data(int i) { num = i; } } public class ConstantsExample { public static void main(String args[]) { System.out.println("value of the constant: "+Data.num); } }
संकलन समय त्रुटि
ConstantsExample.java:4: error: cannot assign a value to final variable num num = i; ^ 1 error
इस प्रोग्राम को काम करने के लिए आपको स्टैटिक ब्लॉक में अंतिम स्टैटिक वैरिएबल को -
. के रूप में इनिशियलाइज़ करना होगाउदाहरण
class Data { static final int num; static { num = 1000; } } public class ConstantsExample { public static void main(String args[]) { System.out.println("value of the constant: "+Data.num); } }
आउटपुट
value of the constant: 1000