स्थानिक वर्ग: पद्धतींच्या आत वर्ग - १

"हाय, अमिगो!"

"दुसरा छोटासा विषय म्हणजे स्थानिक वर्ग ."

"तुम्ही पाहिल्याप्रमाणे, तुम्ही फक्त वेगळ्या फाईल्समध्येच नव्हे तर इतर वर्गांमध्येही वर्ग तयार करू शकता. पण एवढेच नाही. वर्ग पद्धतींमध्येही तयार केले जाऊ शकतात. या वर्गांना स्थानिक वर्ग म्हणतात. ते सामान्य आतील वर्गांप्रमाणे काम करतात, पण ते घोषित केलेल्या पद्धतींमध्ये वापरले जाऊ शकतात."

"स्क्रीनकडे पहा:"

उदाहरण
class Car
{
 public ArrayListcreatePoliceCars(int count)
 {
  ArrayList result = new ArrayList();

  class PoliceCar extends Car
  {
   int policeNumber;
   PoliceCar(int policeNumber)
  {
   this.policeNumber = policeNumber;
  }
 }

 for(int i = 0; i < count; i++)
     result.add(new PoliceCar(i));
  return result;
 }
}

"आणि आम्हाला अशा वर्गांची गरज का आहे?"

"एखादे वर्ग, त्याच्या सर्व रचनाकार आणि पद्धतींसह, पद्धतीमध्ये ठेवल्याने फारसा वाचनीय कोड बनत नाही, तुम्हाला वाटत नाही का?"

"अगदी. तू अगदी बरोबर आहेस."

"तुम्ही निनावी अंतर्गत वर्ग पद्धतींमध्ये देखील वापरू शकता. परंतु या वर्गांचा एक छोटासा फायदा आहे, आणि परिणामी, ते बर्‍याचदा पद्धतींच्या आत वापरले जातात."

"पद्धतीमध्ये घोषित केलेला वर्ग त्या पद्धतीचे स्थानिक चल वापरू शकतो:"

class Car
{
 public ArrayListcreatePoliceCars(int count)
 {
  ArrayList result = new ArrayList();

  for(int i = 0; i < count; i++)
  {
   final int number = i;
   result.add(new Car()
  {
   int policeNumber = number;
  });
 }
  return result;
 }
}

"पण एक मर्यादा आहे: व्हेरिएबल्स "केवळ-वाचनीय" आहेत - ते बदलले जाऊ शकत नाहीत."

"ते निर्बंध का अस्तित्वात आहे ते येथे आहे:"

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

"मेथडचे व्हेरिएबल्स वापरण्यास सक्षम असणे खूप छान आहे. मला आशा आहे की त्याची योग्य प्रशंसा होईल. हे खूप वाईट आहे की तुम्ही व्हेरिएबल्स बदलू शकत नाही."

"एली आज तुम्हाला ते का बदलू शकत नाही हे समजावून सांगेल. दरम्यान, मी सुमारे एक तास झोपायला जाणार आहे."

"शुभ रात्री, किम. मनोरंजक धड्याबद्दल धन्यवाद."