1. स्थानिक चल

चला व्हेरिएबल्सबद्दल अधिक गंभीर चर्चा करूया. पण यावेळी आपण त्यांच्या अंतर्गत रचनेवर चर्चा करणार नाही. त्याऐवजी, व्हेरिएबल्स जिथे आहेत त्या कोडशी संवाद कसा साधतात यावर आम्ही लक्ष केंद्रित करू.

पद्धतींमध्ये घोषित केलेल्या सर्व चलांना लोकल व्हेरिएबल्स म्हणतात . स्थानिक व्हेरिएबल फक्त कोडच्या ब्लॉकमध्ये अस्तित्वात आहे ज्यामध्ये ते घोषित केले आहे. किंवा, अधिक तंतोतंत सांगायचे तर, ते घोषित केल्याच्या क्षणापासून ते कोडच्या ब्लॉकच्या समाप्तीपर्यंत अस्तित्वात असते ज्यामध्ये ते घोषित केले जाते.

साधेपणासाठी, एक उदाहरण पाहू:

कोड परिवर्तनीय दृश्यमानता
public static void main(String[] args)
{
   int a = 5;
   if (a < 10)
   {
     int b = 10;
     while (true)
     {
       int x = a + b;
       System.out.println(x);
     }
     System.out.println(b);
   }

}


a
a
a
a, b
a, b
a, b
a, b, x
a, b, x
a, b
a, b
a
a

चला स्थानिक व्हेरिएबल्समध्ये प्रवेश करण्याबद्दल आणखी एकदा बोलूया. येथे कुरळे ब्रेसेस असलेल्या कोडचा एक ब्लॉक आहे: हा मेथड बॉडी, लूपचा मुख्य भाग किंवा सशर्त विधानासाठी कोडचा एक ब्लॉक असू शकतो. कोडच्या ब्लॉकमध्ये घोषित केलेले व्हेरिएबल कोडच्या त्या ब्लॉकच्या समाप्तीपर्यंत अस्तित्वात असते.

जर व्हेरिएबल लूपच्या मुख्य भागामध्ये घोषित केले असेल, तर ते फक्त लूपच्या मुख्य भागामध्ये अस्तित्वात असेल. हे लूपच्या प्रत्येक पुनरावृत्तीवर तयार आणि नष्ट केले जाते.

तुम्ही एकाच पद्धतीत एकाच नावाचे दोन स्थानिक व्हेरिएबल्स घोषित करू शकत नाही - प्रोग्राम संकलित होणार नाही. परंतु कोडचे ब्लॉक जेथे व्हेरिएबल्स घोषित केले आहेत ते ओव्हरलॅप होत नसल्यास तुम्ही हे करू शकता.

उदाहरण:

कोड परिवर्तनीय दृश्यमानता
public static void main(String[] args)
{
   int a = 5;
   if (a < 10)
   {
     int b = 10;
     System.out.println(b);
   }

   if (a < 20)
   {
     int b = 20;
     System.out.println(b);
   }
}


a
a
a
a, b
a, b
a
a
a
a
a, b
a, b
a

आम्ही नावाचे दुसरे लोकल व्हेरिएबल घोषित करू शकलो कारण  कोड ब्लॉकमध्ये b पहिला व्हेरिएबल दिसत नाही जेथे दुसरे व्हेरिएबल घोषित केले आहे.bb


2. पॅरामीटर्स

आम्ही आधी म्हटल्याप्रमाणे, प्रत्येक पद्धतीमध्ये व्हेरिएबल्स असू शकतात ज्यांना आम्ही पॅरामीटर्स म्हणतो. त्यांच्या दृश्यमानतेचे आणि आयुष्याचे काय?

हे सर्व सरळ आहे. जेव्हा अंमलबजावणी पद्धतीमध्ये प्रवेश करते (म्हणजे जेव्हा पद्धतीचा कोड कार्यान्वित होणे सुरू होते तेव्हा) पॅरामीटर्स तयार केले जातात. पद्धत संपल्यावर ते काढून टाकले जातात. ते पद्धतीच्या संपूर्ण शरीरात दृश्यमान आहेत.

उदाहरण:

कोड परिवर्तनीय दृश्यमानता
public static void main(String[] args)
{
   int a = 5;
   if (a < 10)
   {
     int b = 10;
     while (true)
     {
       int x = a + b;
       System.out.println(x);
     }
     System.out.println(b);
   }

}

args
args, a
args, a
args, a
args, a, b
args, a, b
args, a, b
args, a, b, x
args, a, b, x
args, a, b
args, a, b
args, a
args, a

आम्ही आधी म्हटल्याप्रमाणे, argsफक्त एक व्हेरिएबल आहे ज्याचा प्रकार स्ट्रिंगचा अॅरे आहे. आणि सर्व पॅरामीटर्सप्रमाणे, ते पद्धतीच्या मुख्य भागामध्ये सर्वत्र उपलब्ध आहे. ते म्हणाले, आम्ही आमच्या उदाहरणांमध्ये सहसा त्याकडे दुर्लक्ष करतो.



3. वर्गातील चल

तुम्हाला स्तर 1 मधील धड्यांवरून आठवत असेल की वर्गात पद्धती आणि चल असू शकतात. पद्धतींना काहीवेळा उदाहरण पद्धती म्हणतात आणि चल - उदाहरण चल किंवा फील्ड. हे जावा मध्ये प्रत्यक्षात समानार्थी शब्द आहेत.

वर्गाचे चल (किंवा फील्ड) काय आहेत?

ते व्हेरिएबल्स आहेत जे एका पद्धतीमध्ये नव्हे तर वर्गात घोषित केले जातात.

ते वर्गाच्या कोणत्याही (नॉन-स्टॅटिक) पद्धतीद्वारे प्रवेश केले जाऊ शकतात. ढोबळपणे बोलायचे झाल्यास, उदाहरण व्हेरिएबल्स हे व्हेरिएबल्स आहेत जे वर्गाच्या सर्व पद्धतींद्वारे सामायिक केले जातात.

उदाहरण:

कोड परिवर्तनीय दृश्यमानता
public class Solution
{
   public int count = 0;
   public int sum = 0;

   public void add(int data)
   {
     sum = sum + data;
     count++;
   }

   public void remove(int data)
   {
     sum = sum - data;
     count--;
   }
}


count
count, sum
count, sum
count, sum
count, sum, data
count, sum, data
count, sum, data
count, sum
count, sum
count, sum
count, sum, data
count, sum, data
count, sum, data
count, sum
count, sum

या उदाहरणात, आमच्याकडे दोन पद्धती आहेत - add()आणि remove(). पद्धत आणि उदाहरण व्हेरिएबल्स add()वाढवते आणि पद्धत  आणि व्हेरिएबल्स कमी करते. दोन्ही पद्धती सामायिक उदाहरण व्हेरिएबल्सवर कार्य करतात.sumcountremove()sumcount

पद्धत कार्यान्वित होत असताना स्थानिक चल अस्तित्वात असतात. क्लासचे इन्स्टन्स व्हेरिएबल्स क्लासच्या ऑब्जेक्टमध्ये अस्तित्वात असतात जोपर्यंत तो ऑब्जेक्ट अस्तित्वात असतो. तुम्ही पुढील स्तरावर वर्गातील वस्तूंबद्दल तपशील शिकाल.


4. स्थिर चल

पद्धतींप्रमाणे, वर्गातील चल स्थिर किंवा नॉन-स्टॅटिक असू शकतात. स्टॅटिक पद्धती केवळ स्टॅटिक व्हेरिएबल्समध्ये प्रवेश करू शकतात.

स्तर 11 मध्ये, आम्ही स्टॅटिक व्हेरिएबल्स आणि पद्धतींच्या संरचनेचे विश्लेषण करू आणि तुम्हाला या निर्बंधांची कारणे समजतील.

स्टॅटिक व्हेरिएबल (क्लास व्हेरिएबल) बनवण्यासाठी तुम्ही staticत्याच्या डिक्लेरेशनमध्ये कीवर्ड लिहावा.

स्टॅटिक व्हेरिएबल्स ज्या वर्गात घोषित केले आहेत त्या वस्तू किंवा उदाहरणाशी बांधील नाहीत. त्याऐवजी ते वर्गातीलच आहेत. म्हणूनच वर्गाचा एकही ऑब्जेक्ट तयार केला नसला तरीही ते अस्तित्वात आहेत . तुम्ही रचना वापरून इतर वर्गांमधून त्यांचा संदर्भ घेऊ शकता जसे की:

ClassName.variableName

उदाहरण:

कोड परिवर्तनीय दृश्यमानता
public class Solution
{
   public void add(int data)
   {
     Storage.sum = Storage.sum + data;
     Storage.count++;
   }

   public void remove(int data)
   {
     Storage.sum = Storage.sum - data;
     Storage.count--;
   }
}

public class Storage
{
   public static int count = 0;
   public static int sum = 0;
}

Storage.count, Storage.sum
Storage.count, Storage.sum
Storage.count, Storage.sum, data
Storage.count, Storage.sum, data
Storage.count, Storage.sum, data
Storage.count, Storage.sum
Storage.count, Storage.sum
Storage.count, Storage.sum
Storage.count, Storage.sum, data
Storage.count, Storage.sum, data
Storage.count, Storage.sum, data
Storage.count, Storage.sum



Storage.count, Storage.sum
Storage.count, Storage.sum
Storage.count, Storage.sum

वरील उदाहरणात, आम्ही एक वेगळा Storageवर्ग तयार केला,  त्यात count आणि व्हेरिएबल्स हलवले आणि त्यांना स्थिर घोषित केले . पब्लिक स्टॅटिक व्हेरिएबल्सला प्रोग्राममधील कोणत्याही पद्धतीतून (आणि केवळ एका पद्धतीतूनच नाही) प्रवेश करता येतो.sum