فرق اور ساخت کے درمیان فرق. کلاس اور ساخت کے درمیان فرق کو سمجھنے سے پہلے

Anonim

ہم کلاس اور ساخت کے درمیان فرق کو سمجھنے سے پہلے، ہمیں ان کے ساتھ منسلک چند بنیادی تصورات کو جاننا چاہئے. تصورات کی تفہیم کے بغیر، دونوں کے درمیان اختلافات کو سمجھنا مشکل ہے.

کلاس اور آبجیکٹ کیا ہے:

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

ایک کلاس کے نحو

کلاس سٹور {

عوامی سٹرنگ چیزیں؛

عوامی سٹرنگ ڈیزائن؛

}

ایک آبجیکٹ کے نحوط

سٹور کروری = نیا اسٹور ()؛

سٹور سٹیشنری = نیا اسٹور ()؛

ایک ساخت کیا ہے؟

ایک ساخت میں صرف اعداد و شمار شامل ہیں، اور اس وجہ سے ساختہ اشیاء کے ذریعہ انفرادی ڈیٹا کی ضروریات کو تیار کرنے میں مدد ملتی ہے. ایک کلاس کے برعکس، یہ افعال کی کمی نہیں ہے. یہاں اس کے نحوق ہے:

ساخت گروسریٹنٹ {{ چار داخلہ_نام [50]؛

داخلہ داخلہ؛

} grocery_entrance؛

تمام اسٹورز انفرادی نام اور سائز کے ساتھ اسٹار 'داخلہ' استعمال کرسکتے ہیں.

وراثت کیا ہے؟

یہ وہی ہے جیسے بیٹا اپنے باپ کے مال کو کس طرح ملتا ہے اور اس کے نتیجے میں، اس کا بیٹا کچھ دوسرے ملکوں کو بھی اپنے آپ کو شامل کرسکتا ہے. کلاس یا تو بیس بیس کلاس یا ایک متوقع کلاس ہوسکتی ہے، جس میں سابق کو مؤخر کرنے کی بنیاد کے طور پر لے جایا جا سکتا ہے. حاصل شدہ کلاس نے خود کو مختلف خصوصیات میں اضافہ کیا ہے. جب ہم مندرجہ ذیل مثال پر غور کرتے ہیں تو، کرسی کی دکان کو ایک مخصوص گروسری اسٹور کے طور پر اب بھی حاصل کیا جاسکتا ہے، جیسے XYZ گروسری کی دکان.

اب ہم بنیادی تصورات سے واقف ہیں، ہم کلاس اور ساخت کے درمیان حقیقی فرق میں جا سکتے ہیں.

وہ مختلف کیسے ہیں؟

دوبارہ استحکام:

  • جیسا کہ طبقات بنیادی فریم ورک بناتے ہیں، وہ دوبارہ دوبارہ استعمال کر سکتے ہیں؛ تاہم، ساخت، مخصوص خصوصیات کے ساتھ انفرادی عناصر ہیں، لہذا وہ دوبارہ استعمال نہیں کرسکتے ہیں. مثال کے طور پر، گروسری کی دکان کی کلاس کسی بھی قسم کی کرسی کی دکان کے لئے استعمال کیا جا سکتا ہے، لیکن اسٹرک گروسریٹریٹ اکیلے کے لئے خاص ہے اور دوسری کلاسوں میں اسے دوبارہ استعمال کرنے میں کوئی موقع نہیں ہے. نمائش:
  • کلاس میں تمام افعال عام طور پر اس کے اثاثوں کے لئے دستیاب ہیں.مثال کے طور پر، ہمارے پاس کلاس 'اسٹور' کے تحت 'چیزوں' کا نام ہے. فنکشن 'چیزیں' اس کے تمام اثاثوں جیسے 'گروسری اسٹور،' سٹیشنری اسٹور 'وغیرہ وغیرہ کے لئے نظر آتی ہے. اس طرح کی نمائش اساتذہ کے ساتھ ممنوع نہیں ہے کیونکہ ساخت کا ڈیٹا خود ہی محدود ہے اور دیگر ساخت کے لئے نظر انداز نہیں ہوتا ہے. چیزوں کو واضح کرنے کے لئے، ہم کہہ سکتے ہیں کہ 'گروسریٹریٹ' کے اعداد و شمار تمام دیگر اسٹورز کو پوری طرح نظر انداز نہیں کرسکتے ہیں. حوالہ اور پاس کے ذریعہ پاس ویلیو کی طرف سے:
  • حوالہ کی طرف سے پاس صرف میموری جگہ بھیج رہا ہے اور افعال کے اصل ڈیٹا نہیں ہے. اس کا مطلب یہ ہے کہ جب بھی قدر تبدیل ہوجاتا ہے، اس میں تبدیلی اسی افعال میں ظاہر ہوتا ہے. قیمت کی طرف سے پاس، باری میں، صرف تقریب کو قیمت بھیج رہا ہے. اس معاملے میں، بھیجنے کے بعد قیمت میں ایک تبدیلی تقریب میں عکاس نہیں کیا جائے گا. کلاس حوالہ کی طرف سے منظور کرتا ہے، اور Struct پاس قیمت کا استعمال کرتا ہے. وراثت:
  • کلاس ذیلی ذیلی کلاس بنانے کے لئے مزید وراثت مند ہوسکتے ہیں، لیکن ساخت میراثیت کا استعمال نہیں کرسکتے ہیں. مثال کے طور پر، کلاس سٹور اس کے افعال کو ذیلی طبقے کی 'گروسری سٹور' میں پیش کرتا ہے. لیکن ساخت 'گروسریٹریٹ' کسی بھی فنکشن کا وارث نہیں کرسکتا. ہم کہہ سکتے ہیں کہ ذیلی ساخت کی طرح کوئی تصور نہیں ہے. پہلے سے طے شدہ نمائش:
  • ایک کلاس کے تمام اراکین کو ڈیفالٹ کے ذریعے نجی اداروں کے طور پر رکھا جاتا ہے، جبکہ ایک ساخت کے ارکان کو ڈیفالٹ کی طرف سے عوامی اداروں کے طور پر رکھا جاتا ہے. خالی کلاس اور ساخت کا سائز:
  • کلاس 1 بائٹ کا بھی استعمال ہوتا ہے جب بھی یہ خالی ہے، لیکن جب ساخت خالی ہے تو اس کی ساخت کسی بھی میموری کا استعمال نہیں کرتی ہے. اس کا مطلب یہ ہے کہ ہم یہ کہہ سکتے ہیں کہ خالی ساخت کا سائز 0 بٹس برابر ہے. ردی کی ٹوکری جمع:
  • کلاس کے ساتھ ردی کی ٹوکری کا مجموعہ ممکن ہے، جیسا کہ وہ حوالہ سے گزرتے ہیں. لہذا، ایک جگہ پر ڈیٹا محفوظ کیا جاتا ہے جہاں صاف کرنے کے لئے آسان ہے. دوسری طرف، ردی کی ٹوکری کا مجموعہ Struct کے ساتھ ممکن نہیں ہے، کیونکہ یہ قیمت کی طرف سے گزر جاتا ہے اور مختلف مقامات پر اعداد و شمار بکھرے ہوئے ہیں. میموری مینجمنٹ:
  • کیونکہ کوریج ردی کی ٹوکری جمع کرنے کی اجازت دیتا ہے، میموری انتظام بھی مؤثر ہے؛ تاہم، یہ ساخت کے ساتھ مؤثر نہیں ہے. تعمیر:
  • ایک عموما عملا مخصوص مخصوص اقدار کے ساتھ کلاس کو ابتدا کرتا ہے. ہم اسے اس طرح کی طرح دیکھ سکتے ہیں جو اقدار کے ساتھ ابتداء میں شروع ہو چکا ہے. اگر ایک نئی طبق تشکیل دی جائے تو، اس مثال کے لئے تعمیر کو مختص کرنے کے لئے تعمیر کیا جاتا ہے. ہم ایک تعمیر کنندہ کے دوران بھی اقدار کو دلائل کے طور پر منتقل کر سکتے ہیں. اب ہم اپنی اصل بحث میں آتے ہیں. طبقات کو تمام قسم کے تعمیرات کی اجازت دیتا ہے، جیسے دلائل کے ساتھ یا اس کے بغیر، لیکن تعمیرات کو صرف دلائل کے ساتھ اجازت دیتا ہے، i. ای. پیرامیٹرائزڈ ڈویلپرز. ڈسٹرکٹ:
  • جب ایک طبقہ کی ایک مثال کو خارج کرنے کی ضرورت ہے تو ایک تباہ کن بلایا جاتا ہے. بدترین، اس کے نتیجے میں، اس طرح کو خارج کر دیتا ہے اور میموری کو آزاد کرتا ہے. ایک کلاس ایک تباہی کا استعمال کر سکتا ہے، جبکہ ایک ساخت نہیں ہو سکتا. اراکین کی متغیرات ابتداء:
  • کلاس میں، ہم براہ راست مینی متغیر کو ابتدائی طور پر تشکیل دے سکتے ہیں؛ اساتذہ کے ساتھ اس طرح کی ابتدا ممکن نہیں ہے. آبجیکٹ تخلیق:
  • کلاس میں اعتراض تخلیق کے لئے عام نحوق ہے: ڈیمو obj = نیا ڈیمو ()؛

اس کا مطلب یہ ہے کہ ایک کلاس کی اشیاء کو تخلیق کرتے وقت ہمیں مطلوبہ لفظ 'نیا' استعمال کرنا ہوگا.اس کی ضرورت نہیں ہے جب ساخت کی اشیاء پیدا ہو. صرف ان کے نحوط پر نظر ڈالیں:

ڈیمو obj؛

یہ مطلوبہ لفظ 'نیا' کے بغیر بالکل کام کرتا ہے.

کلاس کا استعمال کرتے وقت اور جب استعمال کرنے کے لۓ؟

جیسا کہ استعمال کیا جاتا اشیاء پیچیدہ اور بڑے ہیں جب ہم ایک دوسرے کے ساتھ ڈیٹا اور افعال کو سنبھالنے میں زیادہ لچکدار ہیں، ہم اس کے لئے جا سکتے ہیں. ہمارے مثال میں، مال بہتر طریقے سے نظام کو اظہار کرنے کے لئے کلاس 'اسٹور' استعمال کرسکتا ہے. تاہم، ساخت، چھوٹے اشیاء سے محدود ہیں، کیونکہ وہ طبقات سے مقابلے میں کم اثر انداز ہوتے ہیں. لہذا، اگر آپ اپنے ہی اسٹور کو ڈیزائن کرتے ہیں، تو ساخت بہتر انتخاب ہیں.

کلاس اور وائس ویزا میں ایک ساخت تبدیل کرنے کے لئے کس طرح؟

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

ہمیں ٹیبلر شکل میں مندرجہ بالا مندرجہ ذیل اختلافات کو نظر آتے ہیں.

ایس. نہیں

تصورات اختلافات کلاس
ساخت 1
دوبارہ استحکام مکمل طور پر دوبارہ استعمال کرنے والا دوبارہ دوبارہ استعمال نہیں 2
کی نمائش < کلاس کے تمام افعال اپنی اشیاء کو نظر انداز کر رہے ہیں ایک ساخت کی ایک چیز کے اعداد و شمار ایک ہی ساخت کی دیگر اشیاء پر نظر نہیں آتا 3 حوالہ کی طرف سے پاس ورڈ اور ویلیو > پاس ورڈ کا حوالہ دیتے ہوئے
ویلتھ کی طرف سے پاس ورڈ کا استعمال کرتا ہے 4 وراثت ایک طبقے کے افعال اس کے ذیلی کلوں کی طرف سے وراثت کی جاسکتی ہے؛ وراثت کی اجازت دیتا ہے
وراثت کی اجازت نہیں دیتا 5 پہلے سے طے شدہ نمائش ایک کلاس کے تمام ارکان ڈیفالٹ کے ذریعہ نجی ہیں
ایک ساخت کے تمام ارکان ڈیفالٹ کی طرف سے عام ہیں 6 سائز خالی ہے جب خالی کلاس کا سائز 1 بائٹ خالی ساخت کا سائز 0 بٹس
7 گندم مجموعہ جیسا کہ یہ حوالہ سے گزرتا ہے، ردی کی ٹوکری جمع کرنا ممکن ہے جیسا کہ یہ قیمت کی طرف سے گزر جاتا ہے، ردی کی ٹوکری کا مجموعہ ممکن نہیں ہے
8 میموری مینجمنٹ ردی کی ٹوکری جمع کرنے کے عمل کی آسانی موثر میموری مینجمنٹ میں مدد ملتی ہے غریبوں میں ردی کی ٹوکری کا مجموعہ کے نتائج کی کمی میموری مینجمنٹ
9 تعمیرات پیرامیٹرز کے ساتھ یا بغیر کسی قسم کے یا اس کے بغیر تمام قسم کے کنیکٹرز کی اجازت دیتا ہے صرف پیرامیٹرڈ کنڈیٹرز کی اجازت دیتا ہے
10 تباہ کن اسے استعمال کرسکتے ہیں
11 اراکین متغیرات ابتداء ممبر متغیرات کی براہ راست ابتداء کی اجازت دیتا ہے اس رکن کا براہ راست لفظ ابتداء کی اجازت نہیں دیتا
12 < آبجیکٹ تخلیق اعتراضات کے دوران مطلوبہ الفاظ 'نیا' استعمال کرنا ضروری ہے یہ اعتراض ہے کہ اعتراضات کے دوران مطلوبہ لفظ 'نیا' کا استعمال کرنے کے لئے اختیاری ہے 13
جب استعمال کیا جاتا ہے؟ وراثت کی ضرورت ہے جہاں بڑے اور پیچیدہ اشیاء کے لئے بہتر ہے وراثت کم اہمیت کا حامل ہے جہاں چھوٹے اور آسان اشیاء کے لئے بہتر. ہم نے تقریبا کلاس اور ساخت کے درمیان تمام اختلافات کا احاطہ کیا ہے، اور اگر آپ محسوس کرتے ہیں کہ کچھ لاپتہ ہے، تو براہ مہربانی ہمیں بتائیں. چلو ایک ساتھ سیکھتے ہیں اور اس کے علم کا سب سے زیادہ بناتے ہیں!