Variable Scope and Lifetime In Hindi

Variable Scope and Lifetime In Hindi

जावा प्रोग्रामिंग में वेरिएबल स्कोप और लाइफटाइम प्रोग्राम में डिक्लेअर वेरिएबल और उसके डाटा टाइप ऑब्जेक्ट बिहेवियर नेचर और प्रोग्राम में उसके स्कोप और लाइफटाइम यूज़ के लिए इसे समझना बहुत एसेंशियल कॉन्सेप्ट हैं. जिससे कि जावा यूजर जान सके की प्रोग्राम में वेरिएबल कैसे और कब एक्सेसिबल होते हैं, यह बेहतर जान सके और किसी प्रोग्राम एग्जीक्यूशन प्रोसेस के दौरान ये कितने समय तक प्रोग्राम में मौजूद रहते हैं। यहाँ किसी प्रोग्राम में वेरिएबल स्कोप और लाइफटाइम कॉन्सेप्ट जावा प्रोग्राम में मेमोरी को मैनेज प्रोसेस और डाटा वैल्यू को स्टोर कर प्रोग्राम में उसकी भूमिका को तय करते है।

Variable Scope and Lifetime In Hindi

Variable Scope in Java.

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

Key Variable Scope and Types in Java Programming.

Local Java Variable Scope.

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

Elements of Local Variable Scope.

  • Local Java Variable Visibility – लोकल जावा वेरिएबल की विजिबिलिटी सिर्फ़ उसी डिक्लेअर यूजर मेथड या प्रोग्राम पैरामीटर ब्लॉक के अंदर जहाँ इसे डिक्लेयर किया गया है, उसी में इन वेरिएबल की एक्सेसिबिलिटी या विजिबिलिटी होती है।
  • Local Java Variable Lifetime – जावा प्रोग्राम में लोकल वेरिएबल सिर्फ़ तब तक अवेलेबल होते है, जब तक किसी प्रोग्राम में वो मेथड या ब्लॉक एग्जीक्यूट हो रहा हो।

Local Java Variable Scope Example.

public class LocalVarScope {

    public void testMethod() {

        int p = 7;  // here Local variable ‘p’ is accessible only inside only this method

        System.out.println(“value of variable p is – ” + p);  // here This will only work

    }

    public static void main(String[] args) {

        LocalVarScope obj = new LocalVarScope();

        obj.testMethod();

        // here Uncommenting the above line will cause a compile-time program error

        // System.out.println(“value of variable p is – ” + p);  // Display Error – here ‘p’ locla variable cannot be accessed outside its define scope

    }

}         

            }

}

Local Java Variable Scope Explanation.

यहाँ इस प्रोग्राम में लोकल वेरिएबल p को testMethod() के अंदर डिक्लेयर या डिफाइन किया गया है, और डिक्लेअर p वेरिएबल को सिर्फ़ उसी मेथड के अंदर से एक्सेस और यूज़ किया जा सकता है। यदि प्रोग्रामर p वेरिएबल को इसके डिक्लेअर मेथड के बाहर से एक्सेस करने की कोशिश करते हैं. तो यह रनटाइम में एक कंपाइल-टाइम एरर को डिस्प्ले करता है।

Instance Java Variable Scope.

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

Elements of Instance Java Variable Scope.

  • Instance Variable Scope Visibility – इंस्टैंस जावा प्रोग्राम वेरिएबल को डिक्लेअर क्लास में सभी मेथड और कंस्ट्रक्टर के द्वारा कही से भी एक्सेस और यूज़ किया जा सकता है।
  • Instance Variable Scope Lifetime – इंस्टैंस जावा प्रोग्राम वेरिएबल किसी प्रोग्राम में जब तक एक्टिव अवेलेबल या अलाइव है,  जब तक की ये वेरिएबल प्रोग्राम में ऑब्जेक्ट गार्बेज से कलेक्ट नहीं हो जाते है, तब तक ये प्रोग्राम में मौजूद और यूज़ होते रहते है।

Instance Java Variable Scope Example.

public class Employee {

    String emp_name;  // here emp_name Instance variable declares as string

    // here we use Constructor to initialize the instance variable in class

    public Employee(String emp_name) {

        this.emp_name = emp_name;

    }

    public void info() {

        System.out.println(“The employee Name – ” + emp_name);  // here it Can access the instance variable

    }

    public static void main(String[] args) {

        Employee employee = new Employee(“Bhavishi”);

        employee.info();  // Result is – Emp_Name – Bhavishi

    }

}

Instance Java Variable Scope Explanation.

यहाँ इस प्रोग्राम में इंस्टेंस वेरिएबल का नाम Employee क्लास में किसी भी मेथड, जैसे info() और कंस्ट्रक्टर से एक्सेस और यूज़ किया जा सकता है।

Class Variables Java Scope/Static Variables.

जावा प्रोगाम में एक क्लास वेरिएबल और एक स्टैटिक वेरिएबल को स्टैटिक कीवर्ड के साथ डिक्लेयर या डिफाइन किया जाता है। जावा स्टैटिक प्रोग्राम वेरिएबल डिक्लेअर क्लास के सभी इंस्टेंस द्वारा शेयर किए जाते हैं। और स्टैटिक जावा वेरिएबल में कुछ पर्टिकुलर ऑब्जेक्ट के बदले क्लास होते हैं।

Elements of Class Variables Java Scope/Static Variables.

  • Static Variables Visibility – स्टैटिक जावा वेरिएबल क्लास के सभी मेथड से एक्सेस किये जा सकते है, और इन्हे उसी क्लास के नाम बिना किसी ऑब्जेक्ट इंस्टेंस के यूज़ कर एक्सेस या प्रोसेस किया जा सकता है।
  • Static Variables Lifetime – स्टैटिक वेरिएबल उस क्लास में तब तक अवेलेबल रहता है, जब तक की क्लास मेमोरी एक्टिव या लोड रहती है, इसका मतलब है की जब तक JVM पूरी तरह शट डाउन नहीं हो जाता है।

Java static class variable scope example.

public class Limiter {

    static int limit = 0;  // here limit Class variable declare as static

    // we create here Method to increment the limit variable

    public static void increment() {

        limit++;

    }

    public static void main(String[] args) {

        Limiter.increment();

        System.out.println(“the limit is – ” + limit);  // Result is – the limit is – 1

        Limiter.increment();

        System.out.println(“the limit is – ” + limit);  // Result is – the limit is – 2

    }

}

static class variable scope Explanation.

यहाँ इस प्रोगाम में डिक्लेअर स्टैटिक वेरिएबल limit, Limiter क्लास के सभी इंस्टेंस के द्वारा शेयर किया जाता है। और इन्हे डायरेक्ट  क्लास के नाम Limiter.limit से भी एक्सेस और यूज़ किया जा सकता है, जैसा की इस प्रोग्राम में इसे increment() मेथड से एक्सेस और यूज़ किया गया है।

Variable Lifetime is a Java concept.

किसी भी जावा प्रोग्राम में प्रोग्रामर द्वारा डिक्लेअर वेरिएबल के लाइफटाइम का अर्थ है की यूजर द्वारा डिक्लेअर प्रोग्राम वेरिएबल कितने समय जितने समय के लिए कोई वेरिएबल प्रोग्राम मेमोरी में अवेलेबल रहता है। जावा प्रोग्राम में डिक्लेअर किसी वेरिएबल का लाइफटाइम उसके डिक्लेअर क्लास या मेथड स्कोप और उस वेरिएबल को प्रोग्राम में कैसे एलोकेट किया गया है, इस पर पूरी तरह डिपेंड करता है।

Local Variable Java Lifetime.

जावा प्रोग्राम में लोकल वेरिएबल को किसी मेथड या ब्लॉक के एग्जीक्यूट होने पर क्रिएट किया जाता है।

लोकल वेरिएबल किसी मेथड या ब्लॉक के एग्जीक्यूशन के कम्पलीट होने पर आटोमेटिक डिस्ट्रॉय हो जाता है।

प्रोग्राम में डिक्लेअर लोकल वेरिएबल स्टैक पे स्टोर होते हैं, और किसी प्रोगाम मेथड या ब्लॉक के एग्जीक्यूशन या टर्मिनेट होने पर ऑटोमैटिकली डिलीट कर दिए जाते हैं।

Local Variable Lifetime Example.

public class LocalVarLifetime {

    public void testMethod() {

        int localVariable = 4;  // here Local localVariable variable is created

        System.out.println(localVariable);  // here The variable ‘localVariable’ is alive or use

    }  // here localVariable is destroyed once the method execution and final finish

    public static void main(String[] args) {

        LocalVarLifetime obj = new LocalVarLifetime();

        obj.testMethod();

    }

}

Local Variable Java Lifetime Explanation.

यहाँ इस प्रोग्राम में लोकल वेरिएबल localVariable सिर्फ testMethod() के क्लास एग्जीक्यूशन के समय ही मौजूद रहता है। प्रोग्राम मेथड के समाप्त होने पर, localVariable प्रोग्राम में डिस्ट्रॉय हो जाता है।

Instance Variable Lifetime in Java.

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

जब जावा प्रोग्राम में ऑब्जेक्ट गार्बेज कलेक्ट किया जाता है, जैसे की, ऑब्जेक्ट का कोई रेफरेंस मौजूद नहीं है, तो ये समाप्त हो जाता है।

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

Instance Variable Lifetime Example.

public class Employee {

    String emp_name;  // here string Instance variable declare

    public Employee(String emp_name) {

        this.emp_name = emp_name;  // here Initialize instance variable

    }

    public static void main(String[] args) {

        Employee employee = new Employee(“Siddhi”);  // here Object created, ’emp_name’ initialized

        System.out.println(employee.emp_name);  // Result is – Siddhi

    }

}  // here The ’employee’ object will be garbage collected once it is no longer use

Instance Variable Lifetime Explanation.

यहाँ इस प्रोग्राम में emp_name इंस्टेंस वेरिएबल तब तक अवेलेबल रहता है, जब तक employee ऑब्जेक्ट प्रोग्राम में एक्टिव या अलाइव है। जब प्रोग्राम में ऑब्जेक्ट का रेफरेंस टर्मिनेट हो जाता है, और यह गार्बेज कलेक्शन के लिए कम्पेटिबल हो जाता है, तो ये वेरिएबल टर्मिनेट हो जाता है।

Java lifetime of a class variable.

जब किसी जावा प्रोग्राम में क्लास मेमोरी में लोड होती है, उस समय स्टैटिक डिक्लेअर वेरिएबल के लिए तब ये क्रिएट होता है।

जब आपके कंप्यूटर में JVM टर्मिनेट होता है, तो ये वेरिएबल समाप्त हो जाता है. क्योंकि स्टैटिक वेरिएबल एक डिक्लेअर क्लास डेफ़िनिशन का पोरशन होते हैं।

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

Lifetime of a class variable example.

public class UniversalLimit {

    static int limit = 0;  // hee Static limit variable created

    public static void increment() {

        limit++;

    }

    public static void main(String[] args) {

        UniversalLimit.increment();

        System.out.println(“The limit is – ” + limit);  // Resul – The limit is – 1

    }

}  // here The static variable ‘limit’ exists as long as the JVM is running on your system.

Lifetime of a class variable Explanation.

यहाँ इस प्रोग्राम में UniversalLimit क्लास JVM के द्वारा लोड की जाती है, तब इसमें स्टैटिक वेरिएबल limit क्रिएट होता है, और यह वेरिएबल JVM के पूरे लाइफटाइम तक मेमोरी में रहता है।

Detail explanation of Variable Scope and Lifetime in java.

Variable TypeJava Variable ScopeJava Variable LifetimeVariable Storage Location
Local VariableLocal variable Accessible and use only within the method or block where they are declared by programmer.Java lifetime variable Created when method/block starts, it automatically destroyed when method/block ends in program.Store in Stack location
Instance VariableJava Instance variable Accessible only by all methods of the its class, align with the created object.Instance variable lifetime Created when object is created, it destroyed when object is garbage collected in program.Store In Heap location
Class VariableProgram class variable declares Accessible by all methods of the its class, even shared by all its objects.Java variable lifetime Created when the class is loaded in program, it destroyed when JVM shuts down in your computer or machine.Store in Method area (static memory)

Accessing Java variables with different scopes.

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

Example of Java variable shadowing.

public class ShadowIllustration {

    int p = 7;  // here Instance variable created

    public void testMethod() {

        int p = 9;  // here Local variable shadows with the instance variable value

        System.out.println(p);  // Prints local p – 9

    }

    public static void main(String[] args) {

        ShadowIllustration obj = new ShadowIllustration();

        obj.testMethod();

    }

}

Java variable shadowing Explanation.

यहाँ इस प्रोग्राम में testMethod() में एक लोकल वेरिएबल p इंस्टेंस वेरिएबल p को शैडो करता है। प्रोगाम डिक्लेअर मेथड के अंदर लोकल p वेरिएबल को प्रायोरिटी प्रोवाइड की जाती है, और यहाँ इंस्टेंस वेरिएबल p का यूज़ नहीं किया जाता है।

Leave a Reply