පරිගණකවැඩසටහන්

ජාවා Generics: විස්තර හා ක්රම

ජාවා භාෂාව පෙනුම සමඟ ආරම්භ නිසැකවම එහි ක්රියාකාරිත්වය තුළ ධනාත්මක අවස්ථාවලදී ගෙන ආ වෙනස්කම්, ගොඩක් වී තිබේ. මෙම සැලකිය යුතු වෙනස්කම් එක් ජාවා Generic බලපත්රය යටතේ අවසර ලබා ඇත හෝ සාමාන්යකරණයන් හඳුන්වා ඇත. මෙම ක්රියාකාරිත්වය පමණක් නොව, දත්ත වර්ග ගෙන ඒම අනුව භාෂාව වඩාත් නම්යශීලී හා පාකිස්තානය අතර, පමණක් නොව, බොහෝ ආරක්ෂිත කරන්න.

යන කරුණ පමණක් නොව වර්ගය යොමු වස්තූන් අනුව, ජාවා Generic බලපත්රය යටතේ අවසර ලබා ඇත කේතය දී generics හඳුන්වා පෙර නිර්මාණය කළ හැකි බව ය. එවැනි සබැඳි ඕනෑම වස්තුවක් ලබා දිය හැක. ඇත්තෙන්ම, ජාවා පන්ති ගම්ය වස්තූන් පන්තියේ උරුමක්කාරයෝ ද වන්නහු ය. කෙසේ වෙතත්, මෙම ප්රවේශය වස්තූන් සිට ඉලක්කය වර්ගය වස්තුවක දෘශ්ය පරිවර්තනය ආරක්ෂාව වර්ග සම්බන්ධ වැරදි බොහෝ කිරීමට හැකි වේ. සාමාන්යකරණයන් භාවිතා කරන විට සියලු නීති ක්රීයාත්මක වන දෝෂ සඳහා පවා හැකි ඉවත්, නිසැකයෙන්ම ස්වයංක්රීයව සිදු කරයි.

ජාවා Generics: විස්තරයක් සහ උදාහරණයක්

අප පහත සඳහන් රූපය තුළ නිතිපතා පන්ති බල යෙදීම සරල උදාහරණයක් සලකා බලමු. පසුව ජාවා Generic බලපත්රය යටතේ අවසර ලබා ඇත සියලු සියුම් හා එළඹීමේදී පිලිබඳ සවිස්තරාත්මක පරීක්ෂනයක් කිරීමට ඉදිරියට.

පන්ති ප්රකාශ සිදුවන වන Pair මාර්ගය අවධානය යොමු. වහාම පන්ති නම පසු, එම ලිපිය ටී ඇඟවුම් එය පිරවුම් කාරුණික, මේ පන්තියේ උදාහරණයක් නිර්මාණය කිරීමේ ක්රියාවලිය තුළ වන වන විවෘත කෝණික වරහන්, විශේෂ වර්ගයක ප්රතිස්ථාපනය වේ. පහත සඳහන් පරිදි එය පෙන්නුම් කරයි: Pair <පූර්ණ සංඛ්යාව> එය විවෘත = නව Pair <පූර්ණ සංඛ්යාව> (). එය ඒ වෙනුවට ටී ඕනෑම ලිපියක් නියම කළ හැකි, නමුත්, රීතියක් ලෙස, T, V හෝ ඊ භාවිතා සඳහන් කළ යුතු ය

සටහන: මෙම ජාවා අටවන වෙළුම සමඟ ආරම්භ ඉලක්කය වර්ගය නියම වූ ඉදිකිරීමටත් දී ප්රකාශ යොමු කෝණික වරහන් හිස් ඉතිරි කළ හැකි විට. Pair <පූර්ණ සංඛ්යාව> එය විවෘත = නව Pair <> (): ඒ නිසා උදාහරණයක් ඉහත සඳහන් ලෙස නැවත ලියා ගත හැක.

පන්ති ඔහුගේ සිරුර වෙනුවට ක්ෂේත්ර, සබැඳි, ඔබ ලිපිය භාවිතා කළ හැකි ක්රම විසින් ලබා වස්තූන් විශේෂිත වර්ග, එවැනි ආකාරයෙන් ප්රකාශ වන විට පමණි. යම් ආකාරයක විසින් ටී පන්ති වස්තුව නිර්මාණය වෙනුවට විට හෙයින්, මෙම නඩුවේ පළමු හා දෙවන ක්ෂේත්ර වර්ගය පූර්ණ සංඛ්යාව වනු ඇත.

තර්ක හා firstItem secondItem තර්කනය පහත ද වර්ගය පූර්ණ සංඛ්යාව හෝ උපපංතිය විය යුතුය සුදුසු ඉදිකිරීමටත් සඳහන්. ඔබ වස්තුව නිර්මාණය කිරීමේදී නියම කර ඇති දෑ වලින් වෙනස් බව දත්ත වර්ගය සම්ප්රේෂණය කිරීමට උත්සාහ නම්, සම්පාදකවරයා මෙම වැරැද්ද ඉඩ දෙන්නේ නැහැ. Pair <පූර්ණ සංඛ්යාව> එය විවෘත = නව Pair <> (නව පූර්ණ සංඛ්යාව (1), නව පූර්ණ සංඛ්යාව (2)): මේ අනුව, තර්ක වස්තුවක් පහත පරිදි වනු ඇත විට ඉදිකිරීමටත්. එම තර්ක හා ක්රම setFirst setSecond වලට අදාළ වේ. ලෙස ඔබ සමහරවිට අනුමාන තියෙනවා, ක්රම getFirst getSecond හා වර්ගය පූර්ණ සංඛ්යාව අතර එහි වටිනාකම ලබා දෙනු ඇත.

පරාමිතීන් පන්ති වර්ග කිහිපයක් සමග සාමාන්යකරනය

සාමාන්යකරනය පන්ති ද කොමාවකින් කෝණය වරහන් සකසා ඇති මෙම වර්ගයේ බහු පරාමිතියන් ප්රකාශ කළ හැකිය. Pair පන්ති පහත ඉදිරිපත් කර ඇත නඩු විසින් ප්රතිනිර්මාණය.

ඔබ දැක ගැනීමට හැකි වන පරිදි, ඔබ කෝණික වරහන් මෙම පන්තියේ උදාහරණයක් නිර්මාණය කරන විට, වර්ග පරාමිතීන් සංඛ්යාව සමාන සඳහන් කළ යුතු. ඔබ සිතියම ලෙස දත්ත ව්යුහය මෙම වර්ගයේ හුරුපුරුදු නම්, ඔබ එය හරියටම එම මූලධර්මය බව පේනවා. අගය වර්ගය - එහි පළමු තර්කය ප්රධාන වර්ගය, හා දෙවන නියම කරනු ලබයි. එය වස්තුවක තර්ක පැටලෙන්නේ කරන විට වර්ග සම්ප්රේෂණය බව සඳහන් කළ යුතු ය. උදාහරණයක් ලෙස, පහත දැක්වෙන දැන්වීම බෙදා ගන්න Pair පන්ති උදාහරණයක් පරම නිවැරදි: Pair <සංගීත, සංගීත> එය විවෘත.

සාමාන්යකරණයන් ඇතැම් ලක්ෂණ

තවදුරටත් ගමන් කිරීමට පෙර, එය ජාවා සම්පාදක පන්ති Pair විවිධ සංස්කරණ නිර්මාණය නොවන බව සඳහන් කළ යුතු ය. ඇත්ත වශයෙන්ම, සාධාරිත වර්ගය සම්පාදනය කිරීමේ ක්රියාවලිය තුළ සියලු තොරතුරු මකා. ඒ වෙනුවට, ඔබ Pair පන්තියේ විශේෂ අනුවාදය නිර්මාණය, සුදුසු වර්ග ගෙන ඒමට. කෙසේ වෙතත්, මෙම වැඩසටහන එහි පන්ති පමණක් Generic බලපත්රය යටතේ අවසර ලබා ඇත අනුවාදය තවමත් ඇත. මෙම ක්රියාවලිය ජාවා Generic බලපත්රය යටතේ අවසර ලබා ඇත පිරිසිදු වර්ගය හැඳින්වේ.

වැදගත් කරුණ සැලකිල්ලට ගන්න. එම java Generic බලපත්රය යටතේ අවසර ලබා ඇත පන්තියේ විවිධ තොරතුරු සඳහා සබැඳි එක ම වස්තුව යොමු කළ නොහැක. Pair <පූර්ණ සංඛ්යාව> obj1 හා යුගල <ද්විත්ව> obj2: බව අපි සබැඳි දෙකක් හිතන්න, වේ. මෙහි ප්රතිඵලයක් වශයෙන්, අනුකූලව obj1 = obj2 දෝෂයක්. විචල්ය දෙකම වර්ගය Pair ක සිටින නමුත්, ඔවුන් යොමු කරන ලෙස වස්තූන්, වෙනස් වේ. මෙම ජාවා Generic බලපත්රය යටතේ අවසර ලබා ඇත ආරක්ෂාව වර්ග සඳහා ඉතා හොඳ උදාහරණයකි.

Generic බලපත්රය යටතේ අවසර ලබා ඇත පන්ති මත සීමා

එය පරාමිති යැවීමට Generic බලපත්රය යටතේ අවසර ලබා ඇත පන්ති ජාවා තර්කය පන්ති වර්ගය විය යුතු වන්නේ, සාමාන්ය පමණකි වර්ග යෙදිය හැකි බව දැන සිටීම වැදගත් වේ. එවැනි උදා ලෙස මෙම සරල වර්ග, ද්විත්ව හෝ දිගු, මාරු කළ නොහැක. Pair එය විවෘත: වෙනත් වචනවලින් කිවහොත්, පහත දැක්වෙන රේඛාව Pair පන්ති ප්රකාශ කිරීමට අවසර නැත. කෙසේ වෙතත්, මෙම සීමාවන් නැති බරපතළ ගැටලුවක්, එක් එක් ප්රාථමික වර්ගය සඳහා අනුරූප ජාවා දවටනය පන්ති පවතින පරිදි වේ. Pair <පූර්ණ සංඛ්යාව, බූලියන්> එය විවෘත = නව Pair <> (25, සැබෑ): ඔබ පූර්ණ සංඛ්යාවක් සාරාංශගත කිරීමට අවශ්ය හා බූලියන් අගය avtoupakovka ඔබ වෙනුවෙන් සෑම දෙයක්ම කරන්නේ පන්ති Pair නම්, නියමාකාරයෙන්.

තවත් බරපතළ සීමාවක් පරාමිතිය වර්ගයේ නිදසුනක් නිර්මාණය කිරීමට නොහැකි බව. උදාහරණයක් ලෙස, පහත දැක්වෙන රේඛාව සංක්ෂිප්තයක් දෝෂයක් හේතු වනු ඇත: ටී පළමු = නව ටී (). ඔබ කලින් දන්නේ නැහැ තර්කයක් සම්පූර්ණ පන්තියේ හෝ වියුක්ත සම්මත, හෝ කුමන අතුරුමුහුණතක් යන්න නිසා මෙම, පැහැදිලි ය. එම තල අරා නිර්මාණය සඳහා යයි.

සීමිත වර්ග

බොහෝ විට තත්ත්වයන් එය Generic බලපත්රය යටතේ අවසර ලබා ඇත පන්ති ජාවා කිරීමට තර්කයක් ලෙස සම්මත කළ හැකි බව වර්ග ලැයිස්තුව සීමා කිරීමට අවශ්ය වූ විට වේ. අපට අපේ පන්තියේ Pair අපි ඔවුන් මත තවදුරටත් ගණිතමය මෙහෙයුම් සඳහා සංඛ්යාත්මක අගයන් පමණි සාරාංශගත කිරීමට අවශ්ය බව උපකල්පනය කරමු. මෙය සිදු කිරීම සඳහා අපි පරාමිතිය වර්ගය ඉහළ සීමාව නිර්වචනය කිරීමට අවශ්ය වේ. එය කෝණික වරහන් සම්මත සියලු තර්ක උරුම වූ superclass දැන්වීම් මගින් අවබෝධ කර ඇත. පහත සඳහන් පරිදි එය බලාපොරොත්තු වනු ඇත: පන්ති Pair . මේ ආකාරයට, සම්පාදකවරයා බව පරාමිතිය ටී වෙනුවට ආදේශ කළ හැකි වාසියක් හෝ අංකය පන්තියේ හෝ එහි උප වර්ගිකරණයන් එකක්.

මෙය පොදු පිළිගැනීමේ වේ. එවැනි තහංචි බොහෝ විට එක ම පන්තියේ ගැළපුම වර්ගය පරාමිතීන් ලබා කිරීම සඳහා භාවිතා වේ. අපේ පන්තියේ Pair දී ආදර්ශය ගැන සලකා බලන්න: පන්ති Pair . මෙන්න අපි වර්ගය ටී අත්තනෝමතික විය හැකි බව සම්පාදක කියමි, හා V වර්ගය ටී වර්ගය හෝ එහි උප වර්ගිකරණයන් එක් එක්කෝ විය යුතුය.

"පතුලේ" සීමා හරියටම එම මාර්ගය වන්නේ, එහෙත් ඒ වෙනුවට වචනය වචනය සුපිරි අක්ෂර වින්යාසය දක්වා විහිදී යයි. බව රහස් පන්ති Pair වේ ටී වෙනුවට ආදේශ කළ හැකි හෝ ArrayList, හෝ එය උරුම බව කිසිදු පන්ති හෝ අතුරු මුහුණත පවසයි.

Generic බලපත්රය යටතේ අවසර ලබා ඇත ජාවා ක්රම සහ ඉදිකරන්නන්

ජාවා හි සාමාන්යකරණයන් පන්ති, පමණක් නොව, ක්රම සඳහා පමණක් යෙදිය හැකි. උදාහරණයක් ලෙස, Generic බලපත්රය යටතේ අවසර ලබා ඇත ක්රමය සාමාන්ය පන්ති කාමරය තුළ ප්රකාශයට පත් කළ හැක.

ඉහත සංඛ්යා දක්නට ලෙස, එම දැන්වීම සාමාන්යකරනය ක්රමය ලොකු දෙයක් වේ. කෝණික වරහන් තබා ඔවුන් තුළ තිබෙන වර්ගය පරාමිතියන් කිරීමට ක්රමවේදයක් නැවත වර්ගය පෙර තරම්.

සියල්ල ඉදිකිරීමටත් ආකාරයෙන් සිදු වේ නම්:

ඔහු ආපසු අගය ඇති බැවින් මෙම අවස්ථාවේ දී කෝණික වරහන්, නිර්මාණ නම පෙර ය. වැඩසටහන් දෙකම ප්රතිඵලය වනු ඇත:

පූර්ණ සංඛ්යාමය

සංගීත

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 si.delachieve.com. Theme powered by WordPress.