جاوا میں کنزیومر انٹرفیس کا استعمال کیسے کریں؟

Jawa My Knzywmr An Rfys Ka Ast Mal Kys Kry



جاوا میں، ' صارف انٹرفیس ایک ایسے آپریشن کی نمائندگی کرتا ہے جو ایک ہی ان پٹ حاصل کرتا ہے اور نتیجہ واپس کیے بغیر اس پر کچھ کارروائی کرتا ہے۔ یہ کسٹم آپریشنز کی وضاحت کرنے کا ایک لچکدار طریقہ بھی پیش کرتا ہے جسے لیمبڈا ایکسپریشنز جیسے فنکشنل پروگرامنگ میں استعمال کیا جا سکتا ہے۔ یہ بلاگ جاوا میں کنزیومر انٹرفیس کے نفاذ کی وضاحت کرتا ہے۔

جاوا میں کنزیومر انٹرفیس کا استعمال کیسے کریں؟

' صارف انٹرفیس انکیپسولیشن یا رویہ پیش کرتا ہے جسے پروگرام میں مختلف مقامات پر منتقل کیا جا سکتا ہے۔ یہ دوبارہ قابل استعمال رویے کو فروغ دیتا ہے جو کوڈ کو ڈپلیکیٹ کیے بغیر مختلف ان پٹس پر لاگو کیا جا سکتا ہے۔ کنزیومر انٹرفیس دو طریقوں پر مشتمل ہے یعنی ' اور پھر() 'اور' قبول کریں() '







کوڈیک مثالوں کے ساتھ دونوں افعال کو سمجھنے کے لیے ذیل کی مثالیں ملاحظہ کریں:



مثال 1: 'اور پھر()' طریقہ کا استعمال



ڈویلپر متعدد زنجیر بنا سکتا ہے ' صارف 'کا استعمال کرتے ہوئے مکمل طور پر آپریشنز' اور پھر() 'طریقہ. یہ ایک نیا لوٹاتا ہے ' صارف 'جو کرنٹ کا آپریشن کرتا ہے' صارف ' مثال. اس کے بعد، آنے والے/بعد کے آپریشنز کو پورا کرتا ہے۔ صارف ' مثال. یہ پہلے سے طے شدہ طریقہ ہے جو بڑے پیمانے پر 'کے عمل کے لئے استعمال کیا جاتا ہے ترکیب '





کے لیے نحو اور پھر() 'طریقہ ذیل میں داخل کیا گیا ہے:

اور پھر ( صارف < ? سپر ٹی > کے بعد )



' اور پھر() 'طریقہ موجودہ صارف کو جوڑتا ہے' سپر 'دوسرے صارف کے ساتھ' کے بعد ' اور یہ پہلے موجودہ صارف کے آپریشن کو انجام دیتا ہے، اس کے بعد فراہم کردہ صارف کا آپریشن ہوتا ہے۔

آئیے بہتر تفہیم کے لیے ایک پروگرام کے ذریعے چلیں:

java.util.ArrayList درآمد کریں؛
java.util.LinkedList درآمد کریں؛
java.util.List درآمد کریں؛
java.util.function.Consumer درآمد کریں؛

عوامی کلاس روٹ {
عوامی جامد باطل مین ( سٹرنگ آرگز [ ] )
{
// اہم طریقہ کی تخلیق
صارف < فہرست < عدد > > ضرب = dataEle - >
{
کے لیے ( int j = 0 ; جے < dataEle.size ( ) ; j++ ) {
dataEle.set ( جے، 5 * dataEle.get ( جے ) ) ;
}
} ;
// عدد کی فہرست ظاہر کرنے کے لیے صارف
صارف < فہرست < عدد > >
پرنٹس = dataEle - > dataEle.stream ( ) .ہر ایک کے لئے ( k - > سسٹم آؤٹ۔ پرنٹ ( k + ' ) ) ;

فہرست < عدد > dataEle = نئی اری لسٹ < عدد > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
ضرب اور پھر ( پرنٹس ) قبول کریں ( dataEle ) ;
}
}

مندرجہ بالا کوڈ کی وضاحت:

  • سب سے پہلے، ' صارف '،' لنکڈ لسٹ اور متعلقہ افادیت جاوا فائل میں درآمد کی جاتی ہیں۔ اس کے بعد، نام کے ساتھ مرکزی کلاس ' جڑ 'بنایا جاتا ہے۔
  • اگلا، قسم کی فہرست کا ایک 'صارف' انٹرفیس بنائیں جس کا نام ' ضرب 'اور اسے ' کے برابر سیٹ کریں ArrayList 'جو نیچے بنایا جا رہا ہے۔
  • یہ استعمال کرتا ہے ' کے لیے 'لوپ جو دہراتی ہے' کی لمبائی تک ArrayList 'نام' dataEle '، اور ' کے ہر ڈیٹا عنصر کو ضرب دیتا ہے dataEle 'کے ساتھ' 5 '
  • اس کے بعد ایک سیکنڈ' صارف انٹرفیس بنایا گیا ہے جو کنسول پر ہر ایک عنصر کو پرنٹ کرتا ہے جو ایک سلسلہ سے ضرب کے عمل کے بعد بازیافت ہوتا ہے۔
  • اب، 'میں ڈمی ڈیٹا عناصر بنائیں اور شامل کریں۔ dataEle 'ArayList.
  • آخر میں، ' اور پھر() 'طریقہ کو' کے ساتھ کہا جاتا ہے قبول کریں() 'طریقہ جو قبول کرتا ہے' dataEle 'ArayList' کا نتیجہ واپس کرتا ہے ضرب ' ترتیب میں.

پھانسی کے مرحلے کے اختتام کے بعد:

اسنیپ شاٹ سے پتہ چلتا ہے کہ ضرب کا کام 'کا استعمال کرکے مکمل کیا گیا ہے۔ اور پھر() 'طریقہ کار' صارف انٹرفیس.

مثال 2: 'قبول()' طریقہ کا استعمال

' قبول کریں() 'طریقہ کار کا ایک فعال طریقہ ہے' صارف انٹرفیس. یہ قسم کی ایک ہی دلیل کو قبول کرتا ہے ' ٹی اور اس پر مخصوص/ضروری کارروائیاں انجام دیتا ہے۔ کی قدر ' خالی 'اسے فراہم نہیں کیا جانا چاہئے کیونکہ یہ قبول نہیں کرتا' خالی اقدار اور ایک استثناء پیدا کریں۔

اس کی ترکیب ذیل میں دی گئی ہے۔

باطل قبول ( < مضبوط > ٹی مضبوط > t )

مندرجہ بالا نحو میں، ' t ” وہ واحد دلیل ہے جس پر کچھ آپریشنز چلتے ہیں۔

آئیے بہتر تفہیم کے لیے نیچے کوڈ بلاک ملاحظہ کریں:

java.util.ArrayList درآمد کریں؛
java.util.LinkedList درآمد کریں؛
java.util.List درآمد کریں؛
java.util.function.Consumer درآمد کریں؛

// افادیت کی درآمد میں جاوا فائل
عوامی کلاس روٹ {
عوامی جامد باطل مین ( سٹرنگ آرگز [ ] ) // اہم طریقہ کی تخلیق
{
صارف < عدد > disp = k - > System.out.println ( ک ) ;
disp.accept ( 255 ) ;
صارف < فہرست < عدد > > ضرب = dataEle - >
{
کے لیے ( int k = 0 ; ک < dataEle.size ( ) ; k++ )
dataEle.set ( ک، 5 * dataEle.get ( ک ) ) ;
} ;

صارف < فہرست < عدد > >
پرنٹس = dataEle - > dataEle.stream ( ) .ہر ایک کے لئے ( جے - > سسٹم آؤٹ۔ پرنٹ ( j + '
'
) ) ;
فہرست < عدد > dataEle = نئی اری لسٹ < عدد > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// قبول کا استعمال کرتے ہوئے ترمیم کو لاگو کریں۔ ( )
ضرب۔قبول کریں۔ ( dataEle ) ;
// قبول کا استعمال کرتے ہوئے dispList کو نافذ کریں۔ ( )
prints.accept ( dataEle ) ;
}
}

مندرجہ بالا کوڈ کی وضاحت:

  • سب سے پہلے، ' صارف انٹرفیس کا نام disp ” بنایا گیا ہے جو بغیر کسی آپریشن کے کنسول پر فراہم کردہ پیرامیٹرز دکھاتا ہے۔
  • اب، ' قبول کریں() 'طریقہ کو' کہتے ہیں disp 'صارف، اور قدر' 255 'اس طریقہ پر منتقل کیا جاتا ہے.
  • اگلا، ایک اور ' صارف انٹرفیس بنایا گیا ہے جو استعمال کرتا ہے کے لیے 'ArayList کے ہر رہائشی عنصر پر ضرب لگانے کے لیے لوپ' dataEle '
  • اس کے بعد، ایک اور بنائیں' صارف 'ظاہر کرنے کے لیے انٹرفیس' dataEle ' عناصر اس ضرب کو لاگو کرنے کے بعد نتیجہ اخذ کرتے ہیں جو ندی سے آرہا ہے۔
  • اگلا، ArrayList شروع کریں ' dataEle 'ڈمی ڈیٹا عناصر کے ساتھ اور استعمال کریں' قبول کریں() 'کے ساتھ طریقہ' ضرب انٹرفیس.
  • آخر میں، کال کریں ' قبول کریں() 'کا استعمال کرتے ہوئے طریقہ' پرنٹس کنسول لاگ پر ضرب لگانے کے بعد نتیجہ ظاہر کرنے کے لیے انٹرفیس۔

پھانسی کے اختتام کے بعد:

مندرجہ بالا سنیپ شاٹ دکھاتا ہے کہ ایک سے زیادہ صارفین کے انٹرفیس کو ایک وقت میں بلایا گیا ہے۔ قبول کریں() 'طریقہ.

مثال 3: فنکشن کے بعد کے لیے استثناء کو ہینڈل کرنا

استثنا تب پیدا ہوتا ہے جب ' کے بعد 'کا فنکشن' اور پھر() 'طریقہ ایک پر مشتمل ہے' قبول کریں() 'طریقہ. یہ ایک انٹرفیس بناتا ہے جس میں کنزیومر انٹرفیس کے طریقوں کا استعمال کرتے ہوئے انٹرفیس کے ذریعہ ڈیٹا کو پروسیس کیا جاسکتا ہے جیسا کہ ذیل میں دکھایا گیا ہے:

java.util.ArrayList درآمد کریں؛
java.util.LinkedList درآمد کریں؛
java.util.List درآمد کریں؛
java.util.function.Consumer درآمد کریں؛

عوامی کلاس روٹ {
عوامی جامد باطل مین ( سٹرنگ آرگز [ ] )
{
صارف < فہرست < عدد > > ضرب = dataEle - >
{
کے لیے ( int j = 0 ; جے < = dataEle.size ( ) ; j++ )
dataEle.set ( جے، 5 * dataEle.get ( جے ) ) ;
} ;
// عدد کی فہرست ظاہر کرنے کے لیے صارف
صارف < فہرست < عدد > >
پرنٹ کریں = dataEle - > dataEle.stream ( ) .ہر ایک کے لئے ( میں - > سسٹم آؤٹ۔ پرنٹ ( میں + ' ) ) ;
فہرست < عدد > dataEle = نئی اری لسٹ < عدد > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
کوشش کریں {
پرنٹ اور پھر ( ضرب ) قبول کریں ( dataEle ) ;
}
پکڑنا ( استثنیٰ ای ) {
System.out.println ( 'رعایت: ' + اور ) ;
}
}
}

مندرجہ بالا کوڈ بلاک کی وضاحت:

  • سب سے پہلے، ' صارف 'انٹرفیس بنایا گیا ہے جو صرف ایک سے زیادہ' 5 فراہم کردہ ArrayList میں موجود ڈیٹا عناصر کے ساتھ عدد۔
  • اگلا، دوسرا ' صارف ' انٹرفیس ArrayList کے ہر ڈیٹا عنصر کو ظاہر کرنے کے لیے بنایا گیا ہے جو سٹریم کے ذریعے موصول ہوتا ہے۔
  • اس کے بعد، ArrayList کو ڈمی انٹیجر قسم کی اقدار کے ساتھ بنایا اور شروع کیا جاتا ہے۔
  • پھر ' کوشش کریں 'بلاک استعمال کیا جاتا ہے جس میں ' اور پھر() 'طریقہ کو' کہتے ہیں پرنٹ کریں انٹرفیس.
  • اس کا سبب بنتا ہے ' IndexOutOfBoundsException ' کیونکہ ' کے لیے 'لوپ کی تکرار کی حد سے تجاوز کر گیا ہے، جس کا حل' پکڑنا 'بلاک.

پھانسی کے مرحلے کے اختتام کے بعد:

اسنیپ شاٹ سے پتہ چلتا ہے کہ IndexOutOfBoundsException کمپائلر کے ذریعہ تیار کیا گیا ہے۔

نتیجہ

' صارف انٹرفیس دوبارہ قابل استعمال رویے کی وضاحت کرنے کا ایک طریقہ فراہم کرتا ہے اور ان پٹ ڈیٹا پر کوئی نتیجہ واپس کیے بغیر کارروائیاں کرتا ہے۔ یہ مشتمل ہے ' قبول کریں() 'اور' اور پھر() 'طریقے. یہ اکثر ڈیٹا پروسیسنگ کے کاموں کے لیے استعمال کیا جاتا ہے، جہاں صارفین کو کسی مجموعہ یا ندی کے ہر عنصر پر ایک کارروائی کرنے کی ضرورت ہوتی ہے۔ یہ سب جاوا میں کنزیومر انٹرفیس کے استعمال اور نفاذ کے بارے میں ہے۔