Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

क्या Java में ऑब्जेक्ट बनाते समय final वेरिएबल को इनिशियलाइज़ किया जा सकता है?

एक बार वेरिएबल को final डिक्लेयर करने के बाद, इसे इनिशियलाइज़ करने के बाद आप इसके वैल्यू को आगे मॉडिफाई नहीं कर सकते। इसके अलावा, इंस्टेंस वेरिएबल्स की तरह, final वेरिएबल्स डिफ़ॉल्ट वैल्यूज़ से इनिशियलाइज़ नहीं होते।

इसलिए, final वेरिएबल्स को डिक्लेयर करते ही इनिशियलाइज़ करना अनिवार्य है। यदि नहीं, तो कंपाइल टाइम एरर जनरेट होगा।

उदाहरण

public class FinalExample { 
    final int j; 
    public static void main(String args[]) { 
        FinalExample obj = new FinalExample(); 
        System.out.println(obj.j); 
    } 
}

कंपाइल टाइम एरर

FinalExample.java:5: error: non-static variable j cannot be referenced from a static context
System.out.println(j);
^
1 error

Final वेरिएबल को इनिशियलाइज़ करना

आप final वेरिएबल को 4 तरीकों से इनिशियलाइज़ कर सकते हैं:

डिक्लेयर करते समय।

public class FinalExample { 
    final int j = 100; 
    public static void main(String args[]) { 
        FinalExample obj = new FinalExample(); 
        System.out.println(obj.j); 
    } 
}

आउटपुट

100

Final मेथड्स का उपयोग करके।

import java.util.Scanner; 
public class FinalExample { 
    final int num = getNum(); 
    public static final int getNum() { 
        System.out.println("Enter the num value"); 
        return new Scanner(System.in).nextInt(); 
    } 
    public static void main(String args[]) { 
        FinalExample obj = new FinalExample(); 
        System.out.println(obj.num); 
    } 
}

आउटपुट

Enter the num value
20
20

कंस्ट्रक्टर्स का उपयोग करके

public class FinalExample { 
    final int num; 
    public FinalExample(int num) { 
        this.num = num; 
    } 
    public static void main(String args[]) { 
        FinalExample obj = new FinalExample(20); 
        System.out.println(obj.num); 
    } 
}

आउटपुट

20

इंस्टेंस इनिशियलाइज़ेशन ब्लॉक्स का उपयोग करके

public class FinalExample { 
    final int num; 
    { 
        num = 500; 
    } 
    public static void main(String args[]) { 
        FinalExample obj = new FinalExample(); 
        System.out.println(obj.num); 
    } 
}

आउटपुट

500

final मेथड के मामले को छोड़कर, यदि आप अन्य तीनों तरीकों में से किसी में final वेरिएबल को इनिशियलाइज़ करते हैं तो यह क्लास को इंस्टेंशिएट करते ही इनिशियलाइज़ हो जाएगा।


  1. Java में pack() मेथड का उपयोग कब कर सकते हैं? Java में pack() मेथड का उपयोग कब कर सकते हैं?

    pack() मेथड Java में Window क्लास में परिभाषित है और यह फ्रेम को इस तरह आकार देता है कि इसकी सभी सामग्री उनके पसंदीदा आकार पर या उससे ऊपर हैं। pack() मेथड का एक विकल्प setSize() या setBounds() मेथड्स को कॉल करके फ्रेम आकार को स्पष्ट रूप से स्थापित करना है। सामान्य तौर पर, pack() मेथड का उपयोग setSiz

  1. - क्या हम Java में blank final वेरिएबल को इनिशियलाइज़ कर सकते हैं

    हां! आप कंस्ट्रक्टर या इंस्टेंस इनिशियलाइज़ेशन ब्लॉक में blank final वेरिएबल को इनिशियलाइज़ कर सकते हैं।

  1. - Java में Final Variable

    एक final वेरिएबल को केवल एक बार स्पष्ट रूप से इनिशियलाइज़ किया जा सकता है। final घोषित एक रेफरेंस वेरिएबल को कभी भी किसी अलग ऑब्जेक्ट को संदर्भित करने के लिए पुनः असाइन नहीं किया जा सकता।हालांकि, ऑब्जेक्ट के भीतर डेटा को बदला जा सकता है। इसलिए, ऑब्जेक्ट की स्थिति बदली जा सकती है लेकिन रेफरेंस नहीं।व