КомпьютерлерБағдарламалау

Java Жалпылау: сипаттамасы мен әдістері

Java тілінде пайда бастап сөзсіз оның функционалдық оң сәттері әкелді өзгерістер, көп ұшырады. Осы маңызды өзгерістердің бірі Java немесе жалпы қорыту енгізу болып табылады. Бұл функция ғана емес деректер түрлерін тарту тұрғысынан тілдік неғұрлым икемді және жан-жақты, сонымен қатар көп қауіпсіз ету.

факт Java рулық коды генериктер енгізу дейін ғана емес, түрі анықтамалық нысаны тұрғысынан, құрылған болуы мүмкін болып табылады. Мұндай сілтемелер кез келген нысанды тағайындалуы мүмкін. Өйткені, Java сабақ ұғындыратын Нысан сыныбы мұрагерлер болып табылады. Алайда, бұл тәсіл мақсатты түріне объектісінен нысанның айқын конверсиялау қауіпсіздік түрлеріне байланысты көптеген қателер әлеуетті көзі болып табылады. қорыту пайдаланған кезде барлық төсеу қателер тіпті әлеуетін жоюға, жанама және автоматты түрде орындалады.

Java Жалпылау: сипаттамасы және мысал

АҚШ-тың төменгі суретте тұрақты сыныптарына қорыту қолдану қарапайым мысалын қарастырайық. Ал содан кейін Java Әмбебап барлық қыр-сырын және енгізуі толық сараптама өтіңіз.

класс декларация Жұптау орын алған жолмен назар аударыңыз. Бірден класс атындағы, бұл класстың данасын құру процесінде болып толтырғыш түрі болып табылады, хат Т. көрсетілген ашық бұрыштық жақшалар, нақты түріне ауыстырылады. Ол келесідей көрінеді: Pair Obj = жаңа Pair (). Ол орнына Т кез келген хат көрсетуге болады, бірақ, әдетте, T, V, не Е пайдалануға атап өткен жөн

Ескерту: конструктор декларациялауға анықтамалық бұрыштық жақшалар бос қалдыруға болады кезде мақсатты түрін көрсете отырып, Java сегізінші нұсқасы бастап. Pair Obj = жаңа Pair <> (): Сондықтан мысал жоғарыда түрінде жазып болады.

сынып, содан кейін оның денесі орнына кен, сілтемелер, сіз бұл хат пайдалана аласыз әдістермен қайтарылған объектілерін нақты түрлерін, осындай жолмен жариялады кезде. T объект сынып құру белгілі бір түріне ауыстырылады кезде бастап, бұл жағдайда бірінші және екінші өріс түрі Integer болады.

дәлел және firstItem secondItem қисынына сүйене отырып, сондай-ақ, түрі бүтін сан немесе сыныбында болуы керек тиісті конструктор аталады. Сіз нысанды құру кезінде көрсетілген қандай ерекшеленеді деректер түрін беруге әрекет етсеңіз, компилятор бұл қатені мүмкіндік бермейді. Pair Obj = жаңа жұбын <> (жаңа Integer (1), жаңа Integer (2)): мынадай мазмұндағы объектісі болады Осылайша, аргументтер құрылысшы. сол дәлел мен әдістерін setFirst setSecond қолданылады. Және сіз, бәлкім, әдістері GetFirst getSecond, сұраса болатынмын және Бүтін сан түрінің мәнін қайтарады.

бірнеше параметрлері класс түрлері бар жалпылама

жалпылама сыныптарда, сондай-ақ, үтір арқылы бұрыштық жақшалар белгіленеді түріне бірнеше параметрлерді мәлімдей алады. Pair класс төменде көрсетілген жағдайда арқылы қайта жасақталған.

Өздеріңіз көріп отырғандай, сіз бұрыштық жақшалар осы класстың данасын жасағанда, параметрлер ретінде түрлерінің саны бірдей көрсетуі тиіс. Сіз картасы деректер құрылымының осы түріне таныс болсаңыз, онда ол дәл сол принцип қолданады деп көруге болады. құны түрі - Онда, бірінші аргумент кілт түрін, және екінші анықтайды. Бұл нысан аргументтер қабаттасуы мүмкін болған кезде түрлері берілетін атап өткен жөн. Мысалы, келесі жарнама Pair класс данасы мүлдем дұрыс: Pair Obj.

қорытулар Кейбір функциялар

Жалғастырар алдында, ол Java компилятор класс Pair түрлі нұсқаларын жасау емес екенін атап өткен жөн. Шын мәнінде, жалпыланған түрін жасау процесінде барлық ақпарат жойылады. Оның орнына, сіз Pair сыныптың арнайы нұсқасын құру, тиісті түрін әкеледі. Алайда, бағдарламаға сыныпты ғана жалпы нұсқасы әлі де бар. Бұл процесс Java Generic тазалау түрі деп аталады.

маңызды нүктесін Ескерту. сол Java рулық сыныптың түрлі нұсқаларына Сілтемелер бір және сол объектінің көрсетуі мүмкін емес. Pair obj1 және Pair obj2: Яғни біз екі сілтемелер бар делік, болып табылады. Демек, жолда obj1 = obj2 қате. екі айнымалылар түрі Pair бар болғанымен, олар қатысты болатын нысандар, әр түрлі. Бұл Java Әмбебап қауіпсіздік түрлерінің жарқын үлгісі болып табылады.

рулық сыныптары бойынша шектеулер

Ол, жалпы класс Java дәлел сынып түрі болуы керек параметрлерді өтуге болады, жалпылау тек анықтамалық түрлері қолданылуы мүмкін екенін білу маңызды болып табылады. қос немесе ұзақ, мысалы, сондай-ақ, осы қарапайым түрлері, берілуі мүмкін емес. Pair Obj: Басқаша айтқанда, келесі жолы Pair класс декларация рұқсат етілмейді. Әрбір қарабайыр түрі үшін тиісті Java орауыш сынып бар Алайда, бұл шектеу, күрделі мәселе болып табылады. Pair Obj = жаңа бу <> (25, шын): Егер сіз бүтін сан инкапсулировать келеді және логикалық мәні avtoupakovka сіз үшін бәрін жасайды класс Pair, егер қатаң айтқанда,.

Тағы бір маңызды шектеу параметр түрінің данасы жасауға қабілетсіздігі болып табылады. Мысалы, келесі жолы жинағы қате тудырады: T бірінші = жаңа T (). Егер дәлел толық класс немесе дерексіз өтті, немесе тіпті интерфейсі ма алдын ала білмейді, өйткені бұл, анық. сол массивтерді құру үшін барады.

шектеулі түрлері

Жиі жағдайлар ол рулық класс Java дәлел ретінде берілуі мүмкін түрлерінің тізімін шектеу қажет бар. біздің класс Pair біз оларға одан әрі математикалық операциялар үшін ғана сандық мәндерді инкапсулировать келеді делік. Бұл әрекетті орындау үшін, біз параметр түрінің жоғарғы шегін анықтау үшін қажет. Бұл бұрыштық жақшалар өтті, барлық дәлелдер мұраға суперкласса жарнамалар арқылы жүзеге асырылады. Ол келесідей көрінеді: класс Pair <Т кеңейтеді>. Осылайша, компилятор деп орнына параметр T алмастыру немесе саны класс немесе оның сыныптар бір болады табады.

Бұл ортақ қабылдау болып табылады. Мұндай шектеулер жиі сол бір сыныпта үйлесімділік түрі параметрлерін қамтамасыз ету үшін қолданылады. Біздің сыныпта жұпта мысалды қарастырып көрейік: класс Pair . Мұнда біз түрі T ерікті болуы мүмкін компилятор айтып, және V түрі T түрі немесе оның сыныптар бірі болуы тиіс.

«Төменгі» шектеу дәл сол жолы, бірақ оның орнына сөздің сөз супер әріптеп кеңейтеді. Яғни құпия класс Pair орнына T алмастыру немесе ArrayList, немесе ол мұра кез келген класс немесе интерфейс болуы мүмкін екенін айтады.

Generic Java әдістері мен құрылысшылар

Java жылы жалпылау сынып, сондай-ақ әдістері ғана емес қолданылуы мүмкін. Мысалы, жалпы әдіс тұрақты сыныпта жариялануы мүмкін.

Жоғарыда суретте көрсетілгендей, жарнама жалпылама әдісі жоқ үлкен мәміле болып табылады. бұрыштық жақшалар салып және оларға түрі параметрлерін көрсету үшін әдісін қайтару түріне дейін жеткілікті.

бәрі конструктор ұқсас жүргізіледі, онда:

ол ешқандай қайтар- мағына, өйткені бұл жағдайда бұрыштық жақшалар, дизайнер атауы алдына. екі бағдарламалардың нәтижесі болады:

Integer

String

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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