2009-07-24 20 views
18

सदस्य चर और स्थानीय चर के बीच क्या अंतर है?सदस्य चर और स्थानीय चर के बीच क्या अंतर है?

क्या वे वही हैं?

+1

ध्यान रखें क्योंकि आपने केवल प्रोग्रामिंग टैग की है, आपको विभिन्न भाषाओं में प्रतिक्रियाएं मिलेंगी। –

उत्तर

18

एक सदस्य चर एक प्रकार का सदस्य है और उस प्रकार के राज्य से संबंधित है। एक स्थानीय चर एक प्रकार का सदस्य नहीं है और किसी दिए गए प्रकार के उदाहरण की स्थिति के बजाय स्थानीय संग्रहण का प्रतिनिधित्व करता है।

हालांकि यह सब बहुत ही सार है। यहां एक सी # उदाहरण है:

class Program 
{ 
    static void Main() 
    { 
     // This is a local variable. Its lifespan 
     // is determined by lexical scope. 
     Foo foo; 
    } 
} 

class Foo 
{ 
    // This is a member variable - a new instance 
    // of this variable will be created for each 
    // new instance of Foo. The lifespan of this 
    // variable is equal to the lifespan of "this" 
    // instance of Foo. 
    int bar; 
} 
+2

आपको स्टैक के बारे में कुछ भी उल्लेख करना चाहिए –

+3

ढेर एक कार्यान्वयन विस्तार है। हां, कई भाषाएं कॉल स्टैक पर स्थानीय चर स्टोर करती हैं लेकिन परिभाषा के अनुसार स्थानीय चर _is_ पर इसका कोई असर नहीं पड़ता है। मैंने केवल उस सार अवधारणा को शामिल करने के लिए एक कोड उदाहरण शामिल किया था जिसके बारे में मैं बात कर रहा था। –

+2

मैं "वेरिएबल" शब्द के उपयोग को कम करने के लिए सदस्य चर "फ़ील्ड" को कॉल करना चाहता हूं। :) – mcjabberz

28

एक स्थानीय चर वह चर है जो आप किसी फ़ंक्शन में घोषित करते हैं।

एक सदस्य चर वैरिएबल है जिसे आप कक्षा निश्चित में घोषित करते हैं।

+0

यह इतना आसान है - धन्यवाद – Chin

+0

_ स्वागत है :) – ufukgun

+0

तो सदस्य चर == वर्ग चर? – utdev

0

एक सदस्य चर किसी ऑब्जेक्ट से संबंधित है ... कुछ ऐसा है जिसमें राज्य है। एक स्थानीय चर सिर्फ आपके द्वारा जो भी गुंजाइश है, उस प्रतीक तालिका से संबंधित है। हालांकि, उन्हें स्मृति में उतना ही प्रदर्शित किया जाएगा जितना कंप्यूटर के पास कक्षा की कोई धारणा नहीं है ... यह केवल बिट्स को देखता है जो निर्देशों का प्रतिनिधित्व करते हैं। स्थानीय चर और सदस्य चर दोनों ढेर या ढेर पर हो सकते हैं।

1
public class Foo 
{ 
    private int _FooInt; // I am a member variable 


    public void Bar() 
    { 
     int barInt; // I am a local variable 
     //Bar() can see barInt and _FooInt 
    } 

    public void Baz() 
    { 
     //Baz() can only see _FooInt 
    } 
} 
5

दो प्रकार के सदस्य चर: उदाहरण और स्थिर हैं।

एक उदाहरण चर कक्षा के उदाहरण के रूप में लंबे समय तक रहता है। प्रति उदाहरण इसकी एक प्रति होगी।

एक स्थिर चर वर्ग के रूप में लंबे समय तक रहता है। पूरी कक्षा के लिए इसकी एक प्रति है।

एक स्थानीय चर एक विधि में घोषित किया जाता है और जब तक विधि रिटर्न केवल रहता है:

public class Example { 
    private int _instanceVariable = 1; 
    private static int _staticvariable = 2; 

    public void Method() { 
     int localVariable = 3; 
    } 
} 

// Somewhere else 

Example e = new Example(); 
// e._instanceVariable will be 1 
// e._staticVariable will be 2 
// localVariable does not exist 

e.Method(); // While executing, localVariable exists 
      // Afterwards, it's gone 
2

एक स्थानीय चर चर आप एक function.Its उम्र में घोषित है कि समारोह पर ही है।

एक सदस्य चर वैरिएबल है जिसे आप कक्षा परिभाषा में घोषित करते हैं। इसकी उम्र केवल उस वर्ग के अंदर है। यह ग्लोबल वैरिएबल है। इसे उसी कक्षा के अंदर किसी भी फ़ंक्शन द्वारा एक्सेस किया जा सकता है।

-1
  • चर एक विधि के भीतर घोषित "स्थानीय चर"
  • चर वर्ग के भीतर घोषित किसी भी तरीकों के भीतर नहीं "सदस्य चर" (वैश्विक चर) कर रहे हैं।
  • कक्षा के भीतर घोषित वैरिएबल किसी भी तरीके से नहीं और स्थिर के रूप में परिभाषित "कक्षा चर" हैं।
संबंधित मुद्दे