Kompüter, Proqramlaşdırma
Java Generics: təsviri və metodları
Java dilinin görünüşü ilə başlayan şübhəsiz onun funksionallığı müsbət anlar gətirilən dəyişikliklər bir çox üzləşib. Bu əhəmiyyətli dəyişikliklərdən biri Java Generic ya ümumiləşdirmələr giriş. Bu işlevsellik dil daha çevik və hərtərəfli, həm də məlumat növləri gətirilməsi baxımından daha təhlükəsiz etmək deyil.
fakt Java ümumi kodu generics tətbiqi əvvəl növü arayış Obyekt baxımından deyil, yaradıla bilər. Bu bağlantılar hər hansı bir obyekt təyin edilə bilər. Bütün sonra, Java dərsləri gizli Object class varisləri. Lakin, bu yanaşma hədəf növü Obyekt bir obyekt aydın dönüşüm təhlükəsizlik növləri ilə bağlı bir çox səhvlər potensial mənbəyidir. ümumiləşdirmələr istifadə edərkən bütün salır səhvlər hətta potensial aradan qaldırılması, dolayısı və avtomatik olaraq həyata keçirilir.
Java Generics: təsviri və nümunəsi
Aşağıdakı rəqəm müntəzəm dərsləri ümumiləşdirilməsi tətbiqi sadə nümunəyə nəzər salaq. Və sonra bütün incəliklərini və Java Generic nüanslar ətraflı müayinə davam etdirilir.
sinif bəyannamə Pair baş verən yol diqqət yetirin. Dərhal sinif adına məktub T. göstərilən açıq bucaqlı mötərizədə Bu xüsusi bir növü ilə əvəz olunacaq Bu sinif bir misal yaradılması prosesi doldurucu bir növ edir. Bu aşağıdakı kimi görünür: Pair
Qeyd: boş qala bilər konstruktor arayış bucaq mötərizədə elan zaman hədəf növü ifadə, Java səkkizinci versiyası ilə başlayır. Yuxarıdakı misal kimi yenidən edilə bilər, belə: Pair
bir sinif sahələrdə, bağlantılar, siz ki, məktub istifadə edə bilərsiniz üsullarla geri obyektlərin xüsusi növ əvəzinə onun bədənində sonra, belə bir şəkildə elan olunur. T-ci ildən sinif obyekt bu halda birinci və ikinci sahələri növü Tamsayı olacaq xüsusi bir növü ilə əvəz olunur oluştururken.
dəlilləri və firstItem secondItem məntiqi sonra da tipli tam və ya yarımsinif olmalıdır müvafiq konstruktor edilir. Bir obyekt oluştururken ifadə nə fərqli bir veri növü ötürmək üçün cəhd etsəniz, compiler bu səhvi imkan verəcək. Belə ki, bir obyekt kimi olacaq dəlilləri konstruktor belə: Pair
bir neçə parametrləri sinif növləri ilə ümumiləşdirilir
ümumiləşdirilmiş dərsləri də bir vergül ilə bucaq mötərizədə müəyyən edilir növü çox parametrləri elan edə bilər. Pair sinif aşağıda təqdim olunur ki, bir halda yenidən.
Gördüyünüz kimi bucaq mötərizədə bu sinif bir misal yaratmaq zaman, parametrləri kimi növ eyni sayda göstərməlidir. Bir Map kimi data strukturu bu növü ilə tanış varsa, bu eyni prinsipi istifadə edir ki, görürük. dəyəri növü - Orada ilk arqument əsas növü və ikinci göstərilmişdir. Bu yolla növləri bir obyekt dəlilləri üst-üstə bilər ki, qeyd etmək lazımdır. Məsələn, aşağıdakı ad Pair sinif instansiya tamamilə doğru: Pair
ümumiləşdirmələr bəzi xüsusiyyətləri
daha davam əvvəl, Java compiler sinif Pair müxtəlif versiyasını yaratmaq deyil ki, qeyd etmək lazımdır. Əslində, bir ümumiləşdirilmiş növü bütün məlumat tərtib prosesi silinir. Bunun yerine, Pair sinif xüsusi versiyasını yaratmaq, müvafiq növ gətirir. Lakin, proqram hələ sinif yalnız bir ümumi versiyası var. Bu proses Java Generic təmizləmə növü adlanır.
əhəmiyyətli bir nöqtəyə unutmayın. Eyni java generic sinif müxtəlif versiyasını bağlantılar bir və eyni obyekt qeyd edə bilməz. Pair
generic dərsləri məhdudiyyətlər
Bu ümumiləşdirmələr növ istinad tətbiq edilə bilər ki, bilmək vacibdir ki, parametrləri bir sinif növü olmalıdır generic sinif java arqument keçmək üçün. ikiqat və ya uzun belə məsələn, bu sadə növləri, transfer edilə bilməz. Başqa sözlə, aşağıdakı xətt Pair sinif bəyannamə icazə verilmir: Pair
Başqa bir ciddi məhdudiyyət parametr növü nümunəsini yaratmaq mümkün deyil. Məsələn, aşağıdakı xətti yığma səhv səbəb olacaq: T ilk = new T (). bir dəlil tam sinif və ya mücərrəd, və ya hətta interface qəbul olub əvvəlcədən bilmirəm, çünki bu, göz qabağındadır. Eyni Diziler yaratmaq üçün gedir.
məhdud növləri
Bu ümumi sinif Java bir arqument kimi qəbul edilə bilər növlərinin siyahısını məhdudlaşdırmaq lazım olduqda tez-tez hallar var. Bizim sinif Pair biz onlara daha riyazi əməliyyatları üçün yalnız ədədi dəyərlər içine istəyirəm ki, fərz edək. Bunu etmək üçün biz parametr növü yuxarı həddi müəyyən etmək lazımdır. Bu bucaq mötərizədə qəbul bütün dəlilləri irsi bir superclass reklam vasitəsilə həyata keçirilir. Bu aşağıdakı kimi görünür: class Pair
Bu ümumi qəbul edir. Belə məhdudiyyətlər tez-tez bir və eyni sinifdə uyğunluğu növü parametrləri təmin etmək üçün istifadə olunur. Bizim sinif Pair nümunə düşünün: class Pair
"Alt" məhdudlaşdırılması eyni yoldur, lakin əvəzinə sözü söz super sehr uzanır. Bu təsnif sinif Pair
Generic Java üsulları və inşaatçılar
Java, ümumiləşdirmələr də üsulları yalnız dərsləri üçün müraciət, lakin bilər. Məsələn, ümumi üsul müntəzəm sinif elan edilə bilər.
Yuxarıdakı rəqəm göründüyü kimi, reklam ümumiləşdirilmiş üsul heç bir böyük şey deyil. bir üsul qaytarılması növü bucaq mötərizədə qoymaq və onlara növü parametrləri müəyyən etmək üçün əvvəl kifayət qədər.
hər şey konstruktor eyni edilir, əgər:
Bu halda Angle mötərizədə o, heç bir qaytarılması dəyəri var, çünki, dizayner adı qarşısında qoydu. həm proqramların nəticə olacaq:
tam
sim
Similar articles
Trending Now