ڪمپيوٽرن, پروگرامن
جاوا Generics: تشريح ۽ طريقا
جي جاوا ٻوليء جي ظاهر سان ٿيندڙ تبديلين، جنهن کي سولائيء سان سمجهي سگهجي ان جي فعاليت ۾ هاڪاري پلو کڻي جو تمام گهڻو undergone ڪري ڇڏيو آهي. انهن اهم تبديلين جو هڪ جاوا عام يا generalizations جو تعارف آهي. هن فنڪشن کي نه رڳو سنڌ جي ڊيٽا قسمن آڻڻ جي سلسلي ۾ سنڌ جي ٻوليء کان وڌيڪ لچڪدار ۽ versatile، پر به گهڻو محفوظ ڪرڻ.
جڏهن ته حقيقت اها آهي ته جاوا عام ڪوڊ ۾ generics جي تعارف کان اڳ پيدا ٿي سگهي ٿو ته، نه رڳو قسم جي حوالي شئي جي لحاظ سان آهي. اهڙي جوڙي ڪنهن به اعتراض لڳايو ڪري سگهجي ٿو. سڀ کان پوء، جاوا ۾ طبقن implicit شئي طبقي جا وارث آهن. تنهن هوندي به، هن اچڻ ڪيترن ئي ٽارگيٽ قسم جي شئي مان هڪ شئي جي وجھندو آھي تبديل ڪرڻ ۾ سيڪيورٽي قسمن سان لاڳاپيل غلطيون جي امڪاني ذريعو آهي. generalizations استعمال ڪري جڏهن سڀني ذات غلطيون لاء به امڪاني کي ختم implicitly ۽ خودڪار طريقي سان پرفارم ڪري رهيا آهن.
جاوا Generics: تشريح ۽ مثال
اسان هيٺ ان جي شڪل ۾ ريگيولر ڪلاس لاء فارمولو جي درخواست جي هڪ سادي مثال ويچار ٿا ڪريون. ۽ پوء سڀني جي subtleties ۽ جاوا عام جي nuances جي هڪ تفصيلي امتحان کي اڳتي.
واٽ جنهن ۾ طبقاتي اعلان وٺندي Pair کي ڌيان ڏيڻ. فوري طور تي ان جي طبقي جي نالي کان پوء، کليل موڙ brackets، جنهن جي خط T. ظاهر اهو ڀريندڙ جو هڪ قسم، جنهن جي هن طبقي جو هڪ مثال ٺاهڻ جي عمل ۾ آهي هڪ خاص قسم جي جاء تي ڪيو ويندو. ان جي پٺيان طور ڏسڻ ۾: Pair <انٽيجر> obj = نئين Pair <انٽيجر> (). اها ڳالهه نوٽ ڪرڻ گهرجي ته ٽي جي بدران ڪنهن به خط ڄاڻائي سگھو ٿا، پر، هڪ راڄ جي طور تي، ٽي، ٿيل يا ابڙو استعمال
نوٽ: سنڌ جي جاوا جي اٺين نسخو سان ٿيندڙ، ٽارگيٽ قسم specifying جڏهن اعلان جي constructor ۾ حوالي موڙ brackets خالي ڇڏي سگهجي ٿو. Pair <انٽيجر> obj = نئين Pair <> (): پوء مثال جي مٿان طور rewritten ڪري سگهجي ٿو.
جڏهن هڪ ڪلاس کان پوء سندس جسم ۾ پوک، جوڙي، جي طريقن تون ته خط استعمال ڪري سگهو ٿا جي موٽي اعتراض جو مخصوص قسمن جي بدران اهڙي واٽ ۾ قرار ڏنو آهي. وٺي ٽي جڏهن طبقاتي شئي ٺاهڻ هڪ خاص قسم جي متبادل آهي، هن معاملي ۾ پهريون ۽ ٻيو شعبن جو قسم انٽيجر جي ٿي ويندي.
جي دليلن ۽ firstItem secondItem جي عقل تي عمل، مناسب constructor ڪرڻ جو حوالو به قسم جي انٽيجر يا subclass جو هجڻ ضروري آهي. تون ته جيڪي مخصوص ڪيو ويو جڏهن هڪ شئي ٺاهڻ کان مختلف آهي هڪ ڊيٽا قسم ڏيون ڪرڻ جي ڪوشش ڪئي ته، سنڌ جي compiler هن مريدن آڻي نه ٿيندو. اهڙيء طرح، جي دليلن constructor جڏهن هڪ شئي جي پٺيان طور ٿيندو: Pair <انٽيجر> obj = نئين Pair <> (نئين انٽيجر (1)، نئين انٽيجر (2)). اهو ساڳيو ئي دليل ۽ طريقن setFirst setSecond کي لاڳو ٿئي. ۽ جيئن ته توهان شايد ڄاتو وڃان، طريقن getFirst getSecond ۽ قسم انٽيجر جو قدر موٽايا ويندا.
ڪيترن ئي حراست ۾ طبقاتي قسمن سان Generalized
generalized طبقن ۾ به قسم جي ته ۾ ڪاما جو موڙ brackets ۾ قائم آهن مان گھڻن جي حراست ۾ اعلان ڪري سگهي ٿو. هڪ صورت Pair طبقي هيٺ پيش ڪجي ٿو جي Redesigned.
توهان ڏسي سگهو ٿا ته جيئن، جڏهن توهان موڙ brackets ۾ هن طبقي جو هڪ مثال پيدا حراست ۾ جيئن قسمن جو ساڳيو تعداد ظاهر ڪرڻ گهرجي. توهان هڪ نقشو جيئن ڊيٽا ڍانچي جي هن قسم سان واقف آهيو، ته توهان ته ان کي انهيء ساڳي اصول استعمال ڪري ڏسي سگهو ٿا. قدر جو قسم - نه، ته پهرين دليل اهم جو قسم، ۽ ٻيو اهو مخصوص ڪيو. اها ڳالهه نوٽ ڪرڻ گهرجي ته سنڌ جي قسمن جي منتقلي جڏهن هڪ اعتراض دليلن مٿان چڙھي سگھي ٿو. مثال طور، هيٺيان ع Pair طبقي مثال بلڪل درست آهي: Pair <جملو، اسٽرنگ> obj.
generalizations جي ڪجهه خاصيتون
وڌيڪ وڃڻ کان اڳ ۾، ان کي غور ڪرڻ گهرجي ته سنڌ جي جاوا compiler طبقاتي Pair جي مختلف نسخن پيدا نه ڪري. حقيقت ۾، هڪ generalized قسم compiling جي عمل ۾ سڀني جي معلومات ختم ٿي ويندو آهي. سوچيم ته توهان جي مناسب قسمن جي آڻ، ڏنيون طبقي جي هڪ خاص نسخو ٺاهڻ. تنهن هوندي به، هن پروگرام ۾ نه تڏهن به رڳو طبقي جو هڪ عام نسخو آهي. هن عمل جاوا عام جي صفائي جي قسم ۾ سڏيو ويندو آهي.
هڪ اهم نقطو نوٽ. اهو ساڳيو جاوا عام طبقي جي مختلف نسخن کي لنڪس هڪ ۽ ساڳئي شئي کي نمايان ڪرڻ نه ٿا ڪري سگهو. Pair <انٽيجر> obj1 ۽ Pair <اڻ> obj2: ته ڀانيو ته اسان کي ٻه ڳنڍيل آهن، آهي. انڪري، قطار ۾ obj1 = obj2 غلطي. جيتوڻيڪ ٻنهي variables قسم Pair <ٽي> جي آهي، جي اعتراض جنهن ڪري اهي حوالي، مختلف آهن. هي جاوا عام ۾ سڪيورٽي جي قسمن جي هڪ وزيراعظم مثال آهي.
عام طبقن تي پابندي
اهو معلوم ڪرڻ لاء ته generalizations صرف حوالي قسمن کي لاڳو ڪري سگهجي ٿو اهم آهي، ته حراست ۾ نڪري عام طبقي جاوا دليل هڪ طبقي قسم جي هجي آهي. جيئن، مثال طور اهي سادو نگارن، ڪنڀر يا وڏيون، منتقل نه ٿي ڪري سگهي ٿو. ٻين لفظن ۾، هيٺين ليڪ Pair طبقي جي اعلان جي اجازت نه آهي: Pair
ٻئي سنجيده حد جي سميجي قسم جو هڪ مثال پيدا ڪرڻ جي جوڙجڪ ناقابل بڻجي آهي. مثال طور، هيٺيان ليڪ هڪ جوڙڻ جي غلطي سبب ٿيندو: ٽي پهرين = نئين ٽي (). ڇاڪاڻ ته اوھان کي اڳواٽ ۾ نه ڄاڻندا آھن هڪ دليل هڪ مڪمل طبقي يا تجريدي گذري، يا به ڏيکاء ڇا هي، پڌرو آهي. اهو ساڳيو arrays ٺاهڻ لاء وڃي ٿي.
محدود قسمن
ڪافي اڪثر حال جڏهن ان قسم جي هڪ دليل عام طبقي جاوا ڪري گذري ٿي سگهي ٿو ته جي لسٽ محدود ڪرڻ ضروري آهي اتي آهن. اسان جو فرض آهي ته اسان جي طبقي Pair ۾ اسان انھن تي وڌيڪ رياضياتي عملن جي لاء رڳو عددي انهيء encapsulate ڪرڻ چاهيو ٿا ڏين. هن ائين ڪرڻ اسان جي سميجي قسم جي اپر حد وصف ڪرڻ جي ضرورت آهي. اهو سڀ دليل موڙ brackets ۾ گذري وارث هڪ superclass اشتهارن جي ذريعي ڳالهه آهي. ان جي پٺيان طور تي نظر ڪندو: طبقي Pair <ٽي ڪئي تعداد>. هن انداز ۾، جي compiler ته تباهه جي سميجي ٽي جي بدران متبادل يا تعداد طبقي يا ان جي subclasses مان هڪ ٿي سگهي ٿو.
هيء هڪ عام استقبال آهي. اهڙي طريقي سان اڪثر هڪ ۽ هڪ ئي ڪلاس ۾ مطابقت قسم جي حراست ۾ مهيا ڪرڻ لاء استعمال ڪري رهيا آهن. اسان جي طبقاتي Pair ۾ مثال تي غور: طبقي Pair <ٽي، ٿيل ٽي ڪئي>. هتي اسان جي compiler ته قسم ٽي ماني ٿي سگهي ٿو چوان، ۽ هلي قسم يا ته ٽي قسم يا ان جي subclasses جي هڪ ٿيڻ ضروري آهي.
حد بندي جي "تري" انهيء ساڳيء طرح آهي، پر لفظ جي بدران لفظ وڏين هجي ڪرڻ لاء ڪئي وڃي ٿي. ته رپورت طبقي Pair <ٽي وڏين ArrayList> آهي چوي ٿو ته بدران ٽي جي تبديل ٿي سگهي ٿو يا هڪ ArrayList، يا ڪنهن به طبقي يا انٽرفيس ته ان inherits.
عام جاوا طريقن ۽ constructors
جاوا ۾، generalizations جي طبقن، پر پڻ طريقن کي نه صرف لاڳو ڪري سگهجي ٿو. مثال طور، هڪ عام طريقو هڪ باقاعده ڪلاس روم ۾ قرار ڏنو ٿي سگهي ٿو.
جيئن مٿي جي شڪل ۾ ڏٺو، ته ع generalized طريقو ڪا وڏي ڳالھ ناهي آهي. هن موڙ brackets ڪر ۽ انھن ۾ قسم جي حراست ۾ مقرر ڪرڻ جو هڪ طريقو جو موٽڻ قسم جي اڳ ڪافي.
هر شئي جي constructor کي اهڙي طرح ڪيو آهي ته:
هن معاملي ۾ موڙ brackets، هن ڪاريگر جي نالي کان اڳ ۾ وجهي، ڇاڪاڻ ته هن جو ڪو به موٽڻ جو قدر ڪيو آهي. ٻنهي پروگرامن جي نتيجي ۾ ٿي ويندي:
انٽيجر
جملو
Similar articles
Trending Now