کمپيوټر, پروګرام
جاوا generics: توضيحات او میتودونه
د جاوا ژبې په بڼه پیل کړې د بدلونونه، چې بې له شکه چې په خپل فعالیت مثبت شيبو راوړل ډېر ليدلې. د دغو د پام وړ بدلونونه يو د جاوا صنفي یا generalizations معرفي کول. دا فعالیت نه یوازې لپاره چې د ژبې د انعطاف او هراړخیزو، خو هم د معلوماتو د ډولونو د راوستلو له پلوه څومره خوندي.
دا حقيقت دی چې په جاوا عمومي کوډ د generics معرفي مخکې شي رامنځته شي، نه يوازې په ډول اشاره Object له پلوه. دا ډول تړنې کولای شي هر څيز ورکړل شي. وروسته د ټولو، په جاوا ټولګي دي ضمني Object ټولګي وارثان. که څه هم، دا طریقه د د د د هدف په ډول د څيز څخه يو څيز څرګند بدلون د امنيت د ډولونو په اړوند څو غلطيو د یوه بالقوه سرچینه ده. کله چې generalizations په کارولو سره د ټولو ترشک لاندې دي ضمني او په اتوماتيک ډول ترسره، آن د تېروتنې د دې وړتيا له منځه وړلو.
جاوا generics: تفصيل او د مثال په توګه
راځئ چې د لاندې شکل کې په منظمه توګه په ټولګيو کې د عمومي کولو د غوښتنلیک یو ساده مثال په توګه په پام کې. او بيا د ټولو د subtleties او د جاوا صنفي نازکیو يوه تفصیلي معاينه لاړ.
ته په لاره کې په کوم کې چې د ټولګي اعلامیه واقع جوړه پاملرنه وکړي. د ټولګي نوم سمدلاسه وروسته، خلاص زاويه په قوسونو، چې د ليک T. اشاره دا يو د filler ډول، چې په د دې ټولګي د يو مثال په رامنځته کولو د بهیر دی د يوه ځانګړي ډول له خوا به بدل شي. دا په لاندې ډول ښکاري: جوړه
نوټ: د سره د جاوا په اتمه نسخه څخه پيل شوې، د هدف ډول مشخص کولو په وخت کې جوړونکی مرجع زاويه په قوسونو اعلان شي تش پاتې شي. نو د مثال په توګه پورته rewritten شي: جوړه (
کله چې يو زده کوونکی په داسې يوې لاره کې د هغه د بدن پر ځای د برخو، تړنې، شیانو د میتودونو تاسو کولای شي چې د لیک وکاروي لخوا راوړل مشخصو ډولونو کې اعلان وکړ، نو. T راهیسې کله چې د رامنځته کولو د ټولګي څيز دی یو ځانګړي ډول، په دې صورت کې د لومړي او دويم برخو کې به د هغه ډول Integer وي له خوا ځای.
د بحثونو او firstItem secondItem د منطق په تعقيب، د مناسب جوړونکی راجع باید د ډول Integer یا subclass هم وي. که تاسو د يو ارقامو ډول چې کله یو څیز په جوړولو کې دی له هغه څه و مشخص مختلفو انتقال هڅه، د compiler به د دې غلطۍ هم نه پرېږدي. په همدې ډول، دلایل جوړونکی کله چې يو څيز به په توګه وي په لاندې ډول: جوړه
عمومی سره څو پارامترونه ټولګي ډولونه
په عمومي ټولګيو کې هم کولای شي د هغه ډول دی چې له يوه گوخې په زاويه په قوسونو دي څو پارامترونه اعلاموي. طرحه یوه قضیه جوړه ټولګي لاندې وړاندې له خوا.
لکه څنګه چې تاسو کولای شي وګورئ، کله چې تاسو په زاويه په قوسونو د دې ټولګي د يو مثال په توګه رامنځ ته باید د ډولونو په همدې توګه پارامترونو شمېر په ګوته کوي. که تاسې د معلوماتو په توګه نقشه جوړښت دې ډول سره بلد دي، تاسو وګورئ، چې دا کټ مټ په هماغه اصل کاروي. د ارزښت د ډول - شته، د لومړي دليل د مهمو ډول، او د دوهم په ګوته کوي. بايد يادونه وشي چې د خپرېږي ډولونه کله چې يو څيز دلایل ښايي ته راشي. د مثال په توګه، د لاندې زیږدیز کال جوړه ټولګي بېلګې په توګه ده په بشپړه توګه صحيح: جوړه <تار، تار> obj.
د generalizations ځينې ځانګړنې
مخکې روان نور، دا باید په نښه شي چې د جاوا compiler نه د دغه ټولګي جوړه مختلفو نسخو نه کړي. په حقیقت کې، د یوه عمومي ډول تالیف ته د ټولو معلوماتو د بهير سره ړنګ شو. پر ځای، تاسو د مناسب ډولونه راوړي، د جوړې ټولګي کې یو ځانګړي نسخه د رامنځته کولو. که څه هم، په دغه پروګرام کې تر اوسه يوازې د دغه ټولګي د يوه عمومي نسخه. په جاوا صنفي پاکول ډول دا پروسه بلل کيږي.
نوټ يو مهم ټکی. د همدې جاوا عمومي ټولګي مختلفو نسخو دویب نه شي کولای چې د یو او د همدې څيز اشاره. ده، فرض موږ دوه تړنې لري: جوړه
په عمومي ټولګي محدوديتونه
دا مهمه ده چې پوه شي چې generalizations کولای شي يوازې د ډولونو منابعو استعمال شي، چې ده ته د پارامترونو پاس عمومي ټولګي جاوا دليل بايد د ټولګي ډول وي. دا ساده ډوله، لکه، د ساري په، دوه يا اوږد، نه انتقال شي. په بل عبارت، د لاندې کرښې جوړې ټولګي اعلامیه اجازه نه وي: جوړه <اینټ> obj. که څه هم، د دې محدودیت یوه جدي ستونزه نه ده، لکه د هر ابتدايي ډول یوه اړونده جاوا نغښتونکی ټولګي شته. په جدي توګه خبرې کولې، که د ټولګي جوړه تاسو غواړئ چې راخالصه یو integer او څرګندکه ارزښت avtoupakovka هر څه لپاره تاسو کوي: جوړه
بل جدي محدوديت د ناتوانۍ د پاراميټر ډول یو مثال جوړ دی. د مثال په توګه، په لاندې ليکه به د يو تصنيف ګمراهۍ سبب: T لومړي = نوي T (). دا څرګنده ده، ځکه چې تاسو له مخکې نه پوهيږم چې يو دليل د بشپړ ټولګي یا انتزاعي، او يا هم د ليدنمخ وفات شو. د arrays د رامنځته کولو د ورته ځي.
محدود ډولونه
يوڅه زیاتره حالاتو کې شته دي چې دا ضروري ده د هغه ډولونه چې کولای شي د یو استدلال ته عمومي ټولګي جاوا کې تصویب شي لست محدود دی. راځئ ومنو چې زموږ په ټولګي کې جوړه موږ غواړو چې يوازې د هغوی د لا محاسبوي عملیاتو عددي ارزښتونو راخالصه. د دې چې موږ باید د پاراميټر ډول د مشرانو حد تعریف کړي. دا له خوا د superclass مربوط ټول دلایل په زاويه په قوسونو کې وفات په ميراث وسيله پوه دی. دا به په لاندې ډول وګورئ: ټولګي جوړه
دا یو عام کیمپ. دا ډول محدوديتونه معمولا کارول کیږي چې په یو او د همدې ټولګي د توافق ډول پارامترونو برابر کړي. زموږ په ټولګي کې جوړه د مثال په توګه په پام کې ونیسئ: ټولګي جوړه
محدودول د "ښکته" کټ مټ په هماغه لاره ده، خو د کلمې پر ځای غزوي د سوپر کلمه په ډاګه کړي. چې د محرم ټولګي جوړه
صنفي جاوا میتودونه او کانسترکتورز
په جاوا، generalizations کولای شي نه يوازې چې د ټولګي هم ميتودونو استعمال شي، خو. د مثال په توګه، د يو عمومي طريقه کولای شي په منظم ډول په ټولګي کې اعلان شي.
لکه څنګه چې په شکل پورته ليدلي، د م عمومي طريقه لویه مساله نه ده. بس مخکې د يوه ميتود په بدل ډول د زاويه په قوسونو کې واچول او د هغوی د ډول پارامترونو دی ځانګړی کړی.
که هر څه ورته ترسره کيږي څو د جوړونکی:
په دې صورت کې زاویه قوسونو د طراح په نامه مخکې کړي، ځکه چې هغه په بدل ارزښت نه لري. د دواړو پروګرامونو له امله به وي:
Integer
تار
Similar articles
Trending Now