جاوا میں انکپسولیشن - انکسیپولیشن کے ساتھ او او پیز کو کس طرح ماسٹر کیا جائے؟



جاوا میں انکپسولیشن سے متعلق یہ مضمون آپ کو مختلف آسان مثالوں کے ساتھ نفاذ کی تفصیلات کو چھپانے کے بنیادی تصورات کو سمجھنے میں مدد دے گا۔

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

ذیل میں عنوانات ہیں ، میں اس مضمون میں گفتگو کروں گا:





الگورتھم ترتیب دیں سی ++

آپ اس ریکارڈنگ کے ذریعے بھی گزر سکتے ہیں جہاں آپ مثالوں کے ساتھ عنوانات کو تفصیلی انداز میں سمجھ سکتے ہیں۔



انکیپسولیشن کا تعارف

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

آئیے ، اب میڈیکل کیپسول کی مثال لیں ، جہاں کیپسول کے اندر دوا ہمیشہ محفوظ رہتی ہے۔ اسی طرح ، encapsulation کے ذریعے ، ایک کلاس کے طریقے اور متغیر اچھی طرح سے پوشیدہ اور محفوظ ہیں۔



جاوا - ایڈوریکا میں انکپسولیشن -اختیاراتجاوا میں انکسیپولیشن کو حاصل کیا جاسکتا ہے:

  • کلاس کے متغیرات کو نجی قرار دینا۔
  • متغیر اقدار میں ترمیم کرنے اور دیکھنے کیلئے عوامی سیٹٹر اور گیٹر کے طریقے مہیا کرنا۔

اب ، encapsulation کے بارے میں بہتر تفہیم حاصل کرنے کے لئے آئیے کوڈ کو دیکھیں۔

عوامی کلاس کا طالب علم {نجی اسٹرنگ کا نام عوامی سٹرنگ getName () {واپسی کا نام} عوامی باطل سیٹ نام (اسٹرنگ کا نام) {this.name = name}} کلاس ٹیسٹ {عوامی جامد باطل اہم (سٹرنگ [] آرگس) {طالب علم s = نیا طالب علم () s.setName ('ہیری پوٹر') System.out.println (s.getName ())}

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

آئیے اب ایک اور مثال دیکھتے ہیں اور انکاپولیشن کو گہرائی میں سمجھتے ہیں۔ اس مثال میں ، کار کلاس کے دو فیلڈ ہیں – نام اور ٹاپ اسپیڈ۔ یہاں ، دونوں کو نجی قرار دے دیا گیا ہے ، یعنی کلاس سے باہر براہ راست ان تک رسائی حاصل نہیں کی جاسکتی ہے۔ ہمارے پاس getter اور setter کے کچھ طریقے ہیں جیسے getName ، setName ، setTopSpeed ​​وغیرہ ، اور انہیں عوامی طور پر اعلان کیا جاتا ہے۔ ان طریقوں کو 'بیرونی لوگوں' کے سامنے لایا جاتا ہے اور کار آبجیکٹ سے ڈیٹا کو تبدیل کرنے اور بازیافت کرنے کے لئے استعمال کیا جاسکتا ہے۔ ہمارے پاس ایک طریقہ کار ہے جس میں گاڑی کی تیز رفتار رفتار مقرر کی جا and اور ایم پی ایچ یا کے ایم ایچ ٹی میں زیادہ سے زیادہ اسپیڈ ویلیو حاصل کرنے کے لئے دو گیٹر طریقے۔ لہذا بنیادی طور پر ، یہی وہ کام کرتا ہے جو عمل کرتا ہے۔ یہ نفاذ کو چھپاتا ہے اور ہمیں جو اقدار چاہتے ہیں دیتا ہے۔ اب ، ذیل کے کوڈ کو دیکھیں۔

پیکیج ایڈورکا پبلک کلاس کار {نجی اسٹرنگ کا نام نجی ڈبل ٹاپ اسپیڈ پبلک کار ()}} پبلک اسٹرنگ گیٹ نام () واپسی کا نام} عوامی باطل سیٹ نام (سٹرنگ کا نام) {this.name = name} پبلک باطل سیٹ ٹاپ اسپیڈ (ڈبل اسپیڈ ایم پی ایچ) {ٹاپ اسپیڈ = اسپیڈ ایم پی ایچ} پبلک ڈبل getTopSpeedMPH () {واپسی ٹاپ اسپیڈ} پبلک ڈبل getTopSpeedKMH () {واپسی ٹاپ اسپیڈ * 1.609344}

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

پیکیج ایڈورکا پبلک کلاس مثال {عوامی جامد باطل اہم (سٹرنگ آرگس []) کار کار = نئی کار () کار.سیٹ نام ('مستنگ جی ٹی 4.8 لیٹر وی 8') کار.سیٹ ٹاپ اسپیڈ (201) سسٹم آؤٹ.پریٹلن (کار۔ getName () + 'MPH میں ٹاپ اسپیڈ' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'KMH میں ٹاپ اسپیڈ ہے' + car.getTopSpeedKMH ())

ایساو ، اس طرح جاوا میں انکیپسولیشن کو حاصل کیا جاسکتا ہے۔ اب ، ہم آگے بڑھیں اور دیکھیں کہ ہمیں انکیپولیشن کی ضرورت کیوں ہے۔

ہمیں جاوا میں انکیپولیشن کی ضرورت کیوں ہے؟

جاوا میں انکیپسولیشن ضروری ہے کیونکہ:

  • یہ ڈیٹا تک رسائ کے راستے کو کنٹرول کرتا ہے
  • مطلوبہ اشیا کی بنیاد پر کوڈ میں ترمیم کرتا ہے
  • ڈھیلے جوڑے کو حاصل کرنے میں ہماری مدد کرتا ہے
  • ہماری درخواست کی سادگی حاصل کرتی ہے
  • اس سے آپ کو پروگرام میں موجود کسی بھی دوسرے کام یا کوڈ میں خلل ڈالے بغیر کوڈ کا حصہ تبدیل کرنے کی سہولت ملتی ہے

اب ، آئیے ایک چھوٹی سی مثال پر غور کریں جس سے انکیوپولیشن کی ضرورت کو واضح کیا گیا ہے۔

جاوا میں ڈبل میں تبدیل
کلاس اسٹوڈنٹ id انٹ آئی ڈی اسٹرنگ کا نام} عوامی کلاس ڈیمو {عوامی جامد باطل اہم (سٹرنگ [] آرگس) {طالب علم s = نیا طالب علم () s.id = 0 s.name = '' s.name = null}

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

تو ، یہ وہ چند نکات تھے جو انکیپولیشن کی ضرورت کو ظاہر کرتے ہیں۔ اب ، دیکھتے ہیں انکسیپولیشن کے کچھ فوائد۔

انکیپسولیشن کے فوائد

    • ڈیٹا چھپا رہا ہے: یہاں ، صارف کو کلاس کے اندرونی عمل درآمد کے بارے میں کوئی اندازہ نہیں ہوگا۔ یہاں تک کہ صارف اس سے بھی واقف نہیں ہوگا کہ کلاس متغیر میں اقدار کو کس طرح ذخیرہ کررہی ہے۔ وہ صرف اس بات سے واقف ہوگا کہ ہم اقدار کو کسی سیٹٹر کے طریقہ کار پر منتقل کررہے ہیں اور متغیرات اس قدر کے ساتھ ابتداء کررہے ہیں۔
    • لچک میں اضافہ: یہاں ، ہم اپنی ضرورت کے مطابق کلاس کے متغیر کو صرف پڑھنے کے لئے یا صرف تحریری طور پر بنا سکتے ہیں۔ اگر آپ متغیرات کو صرف پڑھنے کی حیثیت سے بنانا چاہتے ہیں تو ہمیں سیٹٹر نام () جیسے سیٹر طریقوں کو چھوڑنا ہوگا۔سیٹ ایج() وغیرہ۔ یا اگر ہم متغیر کو صرف لکھنے کی حیثیت سے بنانا چاہتے ہیں تو پھر ہمیں getName () ، getAge () وغیرہ جیسے حاصل کردہ طریقوں کو مذکورہ پروگرام سے خارج کرنا ہوگا۔
    • دوبارہ پریوست: اس سے دوبارہ تقویت اور نئی ضروریات کے ساتھ تبدیل کرنے میں آسانی بھی بہتر ہوتی ہے۔

اب جب ہم انکشیپولیشن کے بنیادی اصولوں کو سمجھ چکے ہیں ، آئیے اس مضمون کے آخری عنوان میں ڈوبکی اور ایک حقیقی وقت کی مثال کی مدد سے انکاپولیشن کو تفصیل سے سمجھیں۔

انکپسولیشن کی ایک اصل وقت کی مثال

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

پبلک کلاس ٹیلی ویژن {نجی ڈبل چوڑائی نجی ڈبل اونچائی نجی ڈبل اسکرینائز نجی نجی میکس وولیمنٹ پرنٹ انٹومینیم نجی بولین پاور پبلک ٹیلی ویژن (ڈبل چوڑائی ، ڈبل اونچائی ، ڈبل اسکرین سیز) {اس.کی چوڑائی ۔یہ اسکرین اسکائپ = اسکرین سیز} پبلک ڈبل چینل ٹننگ (انٹرویو چینل) {سوئچ (چینل) {کیس 1: ریٹرن 34.56 کیس 2: ریٹرن 54.89 کیس3: ریٹرن 73.89 کیس1: ریٹرن 94.98} ریٹرن 0} پبلک اینٹ کمی وولوم () {اگر (0 وولوم) حجم ++ ریٹرن کا حجم}} کلاس ٹیسٹ {عوامی جامد باطل مین (سٹرنگ آرگس []) {ٹیلی ویژن ٹی = نیا ٹیلی ویژن (11.5،7،9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () ٹیلی ویژن۔ // غلطی پھینک دیتی ہے کیونکہ متغیر نجی ہے اور طبقے سے باہر تک رسائی حاصل نہیں کی جاسکتی ہے}}

مندرجہ بالا مثال میں ، میں نے تمام متغیرات کو نجی اور طریقوں ، تعمیر کنندگان اور طبقے کے طور پر عوامی قرار دیا ہے۔ یہاں ، کلاس سے باہر تعمیر کنندگان ، طریقوں تک رسائی حاصل کی جاسکتی ہے۔ جب میں تخلیق کرتا ہوںایک چیزٹیلی ویژن کلاس کے ، یہ کلاس میں موجود طریقوں اور تعمیر کنندگان تک رسائی حاصل کرسکتا ہے ، جبکہ نجی رسائی میں ترمیم کرنے والے متغیرات پوشیدہ ہیں۔ اسی لئے جب آپ تک رسائی حاصل کرنے کی کوشش کرتے ہیں چوڑائی متغیر مندرجہ بالا مثال میں ، یہ پھینک دیتا ہےایک غلطی. اس طرح داخلی عمل درآمد کی تفصیلات دوسری کلاسوں سے پوشیدہ ہیں۔ اس طرح جاوا میں انکیپسولیشن حاصل کی جاتی ہے۔

اس سے ہمیں 'جاوا میں انکسیپولیشن' پر اس مضمون کے اختتام تک پہنچا ہے۔ امید ہے ، آپ کو یہ معلوماتی معلوم ہوا اور اس سے آپ کے علم کی اہمیت بڑھنے میں مدد ملی۔ اگر آپ جاوا کے بارے میں مزید معلومات حاصل کرنا چاہتے ہیں تو ، آپ اس کا حوالہ دے سکتے ہیں

ازگر ایناکونڈا کا استعمال کیسے کریں

اب جب آپ سمجھ گئے ہیں کہ 'جاوا میں انکپسولیشن کیا ہے' ، چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کے نیٹ ورک ہیں۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس طلباء اور پیشہ ور افراد کے لئے ڈیزائن کیا گیا ہے جو جاوا ڈویلپر بننا چاہتے ہیں۔ کورس آپ کو جاوا پروگرامنگ میں آغاز فراہم کرنے اور ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی خیالات کے ساتھ تربیت دینے کے لئے ڈیزائن کیا گیا ہے۔

ہمارے لئے ایک سوال ہے؟ برائے کرم اس 'جاوا میں انکپولیشن' بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد سے جلد آپ کے پاس مل جائیں گے۔