-
رسائی موڈیفائر ، جو کسی کلاس، آبجیکٹ یا فیلڈ کی رسائی کو بیان کرتا ہے، کی ضرورت ہے: اس کی غیر موجودگی میں، JVM (یہ آفاقی جادو کا ایسا ذریعہ ہے) خود بخود پیکج کو ڈیفالٹ شناخت کنندہ تفویض کرتا ہے۔
دوسرے ترمیم کنندہ سے شروع کرتے ہوئے غیر رسائی والے ترمیم کار ہیں، جو لازمی نہیں ہیں اور ایک دوسرے سے متصادم بھی ہو سکتے ہیں (لیکن پہلی چیزیں پہلے)۔
-
جامد ترمیم کرنے والا اشارہ کرتا ہے کہ کلاس، آبجیکٹ، یا فیلڈ جامد ہے۔ لیکن اس کا کیا مطلب ہے؟ بنیادی طور پر ہم اسے کھیتوں میں آزمائیں گے۔
جامد متغیرات کو کلاس متغیر کہا جاتا ہے اور یہ اس کلاس کی تمام مثالوں کے لیے منفرد ہیں۔ جامد طریقوں کو اس چیز کو بنائے بغیر کہا جا سکتا ہے جس میں ان کا اعلان کیا گیا ہے۔ جامد کلاسز کا استعمال اس وقت کیا جاتا ہے جب ایک طبقے کو دوسرے طبقے میں داخل کیا جاتا ہے اور اندرونی طبقے اور بیرونی طبقے کے درمیان تعامل کا اصول طریقوں سے ملتا جلتا ہے (یہ ایک الگ بحث کا موضوع ہے)۔ کسی چیز کے اندر ایک علیحدہ بلاک کے طور پر بھی استعمال کیا جا سکتا ہے۔
-
فائنل موڈیفائر مؤثر طریقے سے متغیر کی طرف اشارہ کرتا ہے کہ یہ ایک مستقل ہے۔ طریقوں کے لیے - کہ وراثت کے دوران ان کو اوور رائڈ نہیں کیا جا سکتا، لیکن کلاسز کے لیے یہ اس بات کا اشارہ ہے کہ اسے اس سے وراثت میں نہیں ملایا جا سکتا (غیر تبدیل شدہ)۔
جامد اور حتمی ترمیم کرنے والے کلاسز، اشیاء اور فیلڈز پر لاگو ہوتے ہیں۔ تاہم، ایسے موڈیفائرز ہیں جو صرف ان میں سے کچھ پر لاگو ہوتے ہیں (یا ان کا کچھ حصہ بھی، چونکہ متغیر اور طریقہ دونوں ایک فیلڈ ہیں، لیکن تمام ترمیم کار دونوں پر لاگو نہیں ہوتے ہیں)۔ اگر ہم مشابہت کھینچیں تو رفتار کے لیے صرف جوتے اور دستانے ہی جادو کیے جا سکتے ہیں (ان کو تیز تر کرنے کے لیے)، لیکن رفتار کے لیے ٹوپی پر جادو کرنا بے معنی ہے (اور یونیورسل سپروائزری کونسل (مرتب) اس کی اجازت نہیں دے گی)۔
-
خلاصہ موڈیفائر صرف طریقوں اور کلاسوں پر لاگو ہوتا ہے ۔ ایک تجریدی طریقہ ایک ایسا طریقہ ہے جس پر عمل درآمد (باڈی) نہیں ہے۔
اگر کسی کلاس کو خلاصہ کے طور پر نشان زد کیا جاتا ہے، تو اس میں یا تو تجریدی طریقے ہوتے ہیں یا اس کلاس کی مثالوں کی تخلیق کو روکنے کے لیے کیا جاتا ہے۔ اگر ہم مشابہت کھینچتے ہیں، تو ہدایات کے بیچ میں آپ "کسی چیز کو رنگ دینا" کی سرخی دیکھ سکتے ہیں، جس کے بعد کوئی تفصیل نہیں ہے۔ وہ. اس ہدایت کو استعمال کرتے ہوئے آپ ایک آبجیکٹ بنا سکتے ہیں اور آپ اسے رنگ بھی کر سکتے ہیں، لیکن اس خاص ہدایات میں یہ نہیں بتایا گیا ہے کہ کیسے (اس چیز کی بنیاد پر سرخ چیز بنانے کے لیے اپنی ہدایات لکھیں اور اس کو رنگنے کا طریقہ بتائیں)۔
-
Syncronized modifier صرف طریقوں کے لیے استعمال ہوتا ہے۔ اس کی موجودگی اس بات کی نشاندہی کرتی ہے کہ ایک وقت میں صرف ایک دھاگہ اس پر عمل درآمد کر سکتا ہے۔ کسی شے کے اندر کوڈ کے علیحدہ بلاک کے طور پر بھی استعمال کیا جا سکتا ہے (ہم وقت سازی آبجیکٹ کی وضاحت کرتے ہوئے)۔
-
غیر مستحکم موڈیفائر - صرف متغیرات کے لیے ۔ متغیرات کے لیے استعمال کرنے کی سفارش کی جاتی ہے جو ایک ساتھ متعدد تھریڈز کے ذریعے استعمال کیے جا سکتے ہیں۔ اس طرح کے موڈیفائر والا متغیر جب بھی تبدیل ہوتا ہے تو اسے فوری طور پر پروسیسر کیشے سے مین میموری میں کاپی کر دیا جاتا ہے، جس سے متوازی تھریڈز کو تازہ ترین قدر حاصل ہو سکتی ہے۔
یہ بات قابل غور ہے کہ volatile ان صورتوں میں لاگو ہوتا ہے جہاں صرف ایک تھریڈ کسی متغیر کو لکھ سکتا ہے، اور باقی صرف اس سے پڑھ سکتے ہیں۔ دیگر معاملات کے لیے، یہ بہتر ہے کہ ہم آہنگی والے موڈیفائر کو ان طریقوں میں شامل کیا جائے جو ایک غیر مستحکم متغیر کو لکھتے ہیں۔
-
عارضی ترمیم کنندہ - صرف متغیرات کے لیے ۔ یہ ترمیم کنندہ متغیرات کو نشان زد کرتا ہے جنہیں کسی چیز کو سیریلائز کرتے وقت چھوڑنے کی ضرورت ہوتی ہے (یہ ایک ایسا سمارٹ عمل ہے کہ اصولی طور پر، آپ خود اس کے بارے میں پڑھ سکتے ہیں...)*
*- میں نے یہ مضمون 17 کی سطح پر لکھا تھا اور اس وقت تک سیریلائزیشن کو بطور عمل بیان نہیں کیا گیا تھا، اس لیے کاپی پیسٹ کرنے کے بجائے، میں آپ کو مشورہ دیتا ہوں کہ اگر ضروری ہو تو خود اس کا مطالعہ کریں۔
- حتمی اور غیر مستحکم - جب متغیرات کی بات آتی ہے، تو ہم بیک وقت یہ نہیں کہہ سکتے کہ یہ حتمی (مستقل) ہے اور کئی تھریڈز اسے تبدیل کرنے کی صلاحیت رکھتے ہیں... بہر حال، یہ مستقل ہے، اور کسی بھی لمحے کوئی دھاگہ اسے پڑھ سکتا ہے۔ ، لیکن ایک بھی دھاگہ مستقل کو تبدیل نہیں کرسکتا (یونیورسل سپروائزری کونسل اس کی اجازت نہیں دے گی)۔
- حتمی اور خلاصہ - کلاسز اور طریقے دونوں خلاصہ نہیں ہوسکتے ہیں (جو زیادہ تر معاملات میں ان پر عمل درآمد کے لیے وضاحت کرنے کی ضرورت کا مطلب ہے) اور حتمی، یعنی ناقابل تغیر یہ پتہ چلتا ہے کہ ہدایات یہ بتاتی ہیں کہ کسی بھی مواد (خلاصہ حصہ) سے ایک اچھا پائیدار ہیلمیٹ کیسے بنایا جائے، لیکن اس کے لئے اس میں کوئی سوراخ نہیں ہونا چاہئے (حتمی لازمی حصہ، تبدیل نہیں کیا جا سکتا).
- خلاصہ اور جامد - ایک تجریدی طریقہ ایک ہی وقت میں جامد یا مطابقت پذیر نہیں ہوسکتا ہے۔ ایک جامد تجریدی طریقہ کوئی معنی نہیں رکھتا، کیونکہ یہ نہ صرف کچھ نہیں کرتا، بلکہ اس کا تعلق ایک پوری کلاس سے ہے - نتیجہ ایک بیکار چیز ہے۔
- خلاصہ اور مطابقت پذیری - کسی ایسے طریقہ کے ساتھ کام کو مطابقت پذیر کرنے کا کیا فائدہ ہے جو کچھ نہیں کرتا ہے؟
GO TO FULL VERSION