مثال کے ساتھ جاوا او او پیز میں انکپسولیشن۔

جاوا میں Encapsulation کیا ہے؟

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

اس سبق میں ، آپ سیکھیں گے-

اگر ویڈیو قابل رسائی نہیں ہے تو یہاں کلک کریں۔



ایک مثال کے ساتھ انکسیپولیشن سیکھیں۔

تفصیل سے سمجھنے کے لیے کہ انکسیپولیشن کیا ہے ڈپازٹ کے ساتھ درج ذیل بینک اکاؤنٹ کلاس پر غور کریں اور بیلنس کے طریقے دکھائیں | _+_ |

فرض کریں کہ ایک ہیکر آپ کے بینک اکاؤنٹ کے کوڈ تک رسائی حاصل کرنے میں کامیاب ہوگیا۔ اب ، وہ دو طریقوں سے آپ کے اکاؤنٹ میں -100 کی رقم جمع کرنے کی کوشش کرتا ہے۔ آئیے اس کا پہلا طریقہ یا نقطہ نظر دیکھیں۔

نقطہ نظر 1: وہ کوڈ میں ہیرا پھیری کرکے آپ کے بینک اکاؤنٹ میں ایک غلط رقم (کہو -100) جمع کرنے کی کوشش کرتا ہے۔

اب سوال یہ ہے کہ کیا یہ ممکن ہے؟ تحقیقات کرنے دو۔

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

اگر کوئی ڈیٹا ممبر پرائیویٹ ہے تو اس کا مطلب ہے کہ اس تک صرف اسی کلاس میں رسائی حاصل کی جا سکتی ہے۔ کوئی بیرونی کلاس نجی ڈیٹا ممبر یا دوسری کلاس کے متغیر تک رسائی حاصل نہیں کر سکتی۔

تو ہمارے معاملے میں ہیکر آپ کے اکاؤنٹ میں -100 کی رقم جمع نہیں کروا سکتا۔

اپروچ 2۔ : ہیکر کا پہلا طریقہ رقم جمع کرنے میں ناکام رہا۔ اگلا ، وہ 'ڈپازٹ' طریقہ استعمال کرتے ہوئے -100 رقم جمع کرنے کی کوشش کرتا ہے۔

لیکن طریقہ کار کے نفاذ میں منفی اقدار کی جانچ ہوتی ہے۔ تو دوسرا نقطہ نظر بھی ناکام ہو جاتا ہے۔

اس طرح ، آپ کبھی بھی اپنے ڈیٹا کو کسی بیرونی پارٹی کے سامنے نہیں لاتے۔ جو آپ کی درخواست کو محفوظ بناتا ہے۔

پورے کوڈ کو ایک کیپسول کے بارے میں سوچا جاسکتا ہے ، اور آپ صرف پیغامات کے ذریعے بات چیت کرسکتے ہیں۔ لہذا نام encapsulation.

جاوا میں ڈیٹا چھپانا۔

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

جاوا میں انکپسولیشن کی کم ڈگری حاصل کرنے کے لیے ، آپ 'پروٹیکڈ' یا 'پبلک' جیسے ترمیم کار استعمال کرسکتے ہیں۔ encapsulation کے ساتھ ، ڈویلپرز کوڈ کے ایک حصے کو دوسرے کو متاثر کیے بغیر آسانی سے تبدیل کر سکتے ہیں۔

جاوا میں گیٹر اور سیٹٹر۔

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

مندرجہ ذیل کوڈ گیٹر اور سیٹٹر طریقوں کی ایک مثال ہے: | _+_ |

مندرجہ بالا مثال میں ، getBalance () طریقہ گیٹر طریقہ ہے جو متغیر account_balance کی قیمت پڑھتا ہے اور setNumber () طریقہ سیٹٹر طریقہ ہے جو متغیر اکاؤنٹ_نمبر کے لیے قیمت مقرر یا اپ ڈیٹ کرتا ہے۔

خلاصہ بمقابلہ انکپسولیشن۔

اکثر انکپسولیشن کو خلاصہ کے ساتھ غلط سمجھا جاتا ہے۔ چلو پڑھیں-

  • انکسیپولیشن فعالیت کے حصول کے لیے 'کیسے' کے بارے میں ہے۔
  • خلاصہ یہ ہے کہ ایک کلاس کیا کر سکتی ہے۔

اس فرق کو سمجھنے کے لیے ایک سادہ سی مثال موبائل فون ہے۔ جہاں سرکٹ بورڈ میں پیچیدہ منطق ایک ٹچ اسکرین میں گھری ہوئی ہے ، اور انٹرفیس اس کو خلاصہ کرنے کے لئے فراہم کیا گیا ہے۔

جاوا میں Encapsulation کے فوائد۔

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