Компьютерлер, Бағдарламалау
Java Жалпылау: сипаттамасы мен әдістері
Java тілінде пайда бастап сөзсіз оның функционалдық оң сәттері әкелді өзгерістер, көп ұшырады. Осы маңызды өзгерістердің бірі Java немесе жалпы қорыту енгізу болып табылады. Бұл функция ғана емес деректер түрлерін тарту тұрғысынан тілдік неғұрлым икемді және жан-жақты, сонымен қатар көп қауіпсіз ету.
факт Java рулық коды генериктер енгізу дейін ғана емес, түрі анықтамалық нысаны тұрғысынан, құрылған болуы мүмкін болып табылады. Мұндай сілтемелер кез келген нысанды тағайындалуы мүмкін. Өйткені, Java сабақ ұғындыратын Нысан сыныбы мұрагерлер болып табылады. Алайда, бұл тәсіл мақсатты түріне объектісінен нысанның айқын конверсиялау қауіпсіздік түрлеріне байланысты көптеген қателер әлеуетті көзі болып табылады. қорыту пайдаланған кезде барлық төсеу қателер тіпті әлеуетін жоюға, жанама және автоматты түрде орындалады.
Java Жалпылау: сипаттамасы және мысал
АҚШ-тың төменгі суретте тұрақты сыныптарына қорыту қолдану қарапайым мысалын қарастырайық. Ал содан кейін Java Әмбебап барлық қыр-сырын және енгізуі толық сараптама өтіңіз.
класс декларация Жұптау орын алған жолмен назар аударыңыз. Бірден класс атындағы, бұл класстың данасын құру процесінде болып толтырғыш түрі болып табылады, хат Т. көрсетілген ашық бұрыштық жақшалар, нақты түріне ауыстырылады. Ол келесідей көрінеді: Pair
Ескерту: конструктор декларациялауға анықтамалық бұрыштық жақшалар бос қалдыруға болады кезде мақсатты түрін көрсете отырып, Java сегізінші нұсқасы бастап. Pair
сынып, содан кейін оның денесі орнына кен, сілтемелер, сіз бұл хат пайдалана аласыз әдістермен қайтарылған объектілерін нақты түрлерін, осындай жолмен жариялады кезде. T объект сынып құру белгілі бір түріне ауыстырылады кезде бастап, бұл жағдайда бірінші және екінші өріс түрі Integer болады.
дәлел және firstItem secondItem қисынына сүйене отырып, сондай-ақ, түрі бүтін сан немесе сыныбында болуы керек тиісті конструктор аталады. Сіз нысанды құру кезінде көрсетілген қандай ерекшеленеді деректер түрін беруге әрекет етсеңіз, компилятор бұл қатені мүмкіндік бермейді. Pair
бірнеше параметрлері класс түрлері бар жалпылама
жалпылама сыныптарда, сондай-ақ, үтір арқылы бұрыштық жақшалар белгіленеді түріне бірнеше параметрлерді мәлімдей алады. Pair класс төменде көрсетілген жағдайда арқылы қайта жасақталған.
Өздеріңіз көріп отырғандай, сіз бұрыштық жақшалар осы класстың данасын жасағанда, параметрлер ретінде түрлерінің саны бірдей көрсетуі тиіс. Сіз картасы деректер құрылымының осы түріне таныс болсаңыз, онда ол дәл сол принцип қолданады деп көруге болады. құны түрі - Онда, бірінші аргумент кілт түрін, және екінші анықтайды. Бұл нысан аргументтер қабаттасуы мүмкін болған кезде түрлері берілетін атап өткен жөн. Мысалы, келесі жарнама Pair класс данасы мүлдем дұрыс: Pair
қорытулар Кейбір функциялар
Жалғастырар алдында, ол Java компилятор класс Pair түрлі нұсқаларын жасау емес екенін атап өткен жөн. Шын мәнінде, жалпыланған түрін жасау процесінде барлық ақпарат жойылады. Оның орнына, сіз Pair сыныптың арнайы нұсқасын құру, тиісті түрін әкеледі. Алайда, бағдарламаға сыныпты ғана жалпы нұсқасы әлі де бар. Бұл процесс Java Generic тазалау түрі деп аталады.
маңызды нүктесін Ескерту. сол Java рулық сыныптың түрлі нұсқаларына Сілтемелер бір және сол объектінің көрсетуі мүмкін емес. Pair
рулық сыныптары бойынша шектеулер
Ол, жалпы класс Java дәлел сынып түрі болуы керек параметрлерді өтуге болады, жалпылау тек анықтамалық түрлері қолданылуы мүмкін екенін білу маңызды болып табылады. қос немесе ұзақ, мысалы, сондай-ақ, осы қарапайым түрлері, берілуі мүмкін емес. Pair
Тағы бір маңызды шектеу параметр түрінің данасы жасауға қабілетсіздігі болып табылады. Мысалы, келесі жолы жинағы қате тудырады: T бірінші = жаңа T (). Егер дәлел толық класс немесе дерексіз өтті, немесе тіпті интерфейсі ма алдын ала білмейді, өйткені бұл, анық. сол массивтерді құру үшін барады.
шектеулі түрлері
Жиі жағдайлар ол рулық класс Java дәлел ретінде берілуі мүмкін түрлерінің тізімін шектеу қажет бар. біздің класс Pair біз оларға одан әрі математикалық операциялар үшін ғана сандық мәндерді инкапсулировать келеді делік. Бұл әрекетті орындау үшін, біз параметр түрінің жоғарғы шегін анықтау үшін қажет. Бұл бұрыштық жақшалар өтті, барлық дәлелдер мұраға суперкласса жарнамалар арқылы жүзеге асырылады. Ол келесідей көрінеді: класс Pair <Т кеңейтеді>. Осылайша, компилятор деп орнына параметр T алмастыру немесе саны класс немесе оның сыныптар бір болады табады.
Бұл ортақ қабылдау болып табылады. Мұндай шектеулер жиі сол бір сыныпта үйлесімділік түрі параметрлерін қамтамасыз ету үшін қолданылады. Біздің сыныпта жұпта мысалды қарастырып көрейік: класс Pair
«Төменгі» шектеу дәл сол жолы, бірақ оның орнына сөздің сөз супер әріптеп кеңейтеді. Яғни құпия класс Pair
Generic Java әдістері мен құрылысшылар
Java жылы жалпылау сынып, сондай-ақ әдістері ғана емес қолданылуы мүмкін. Мысалы, жалпы әдіс тұрақты сыныпта жариялануы мүмкін.
Жоғарыда суретте көрсетілгендей, жарнама жалпылама әдісі жоқ үлкен мәміле болып табылады. бұрыштық жақшалар салып және оларға түрі параметрлерін көрсету үшін әдісін қайтару түріне дейін жеткілікті.
бәрі конструктор ұқсас жүргізіледі, онда:
ол ешқандай қайтар- мағына, өйткені бұл жағдайда бұрыштық жақшалар, дизайнер атауы алдына. екі бағдарламалардың нәтижесі болады:
Integer
String
Similar articles
Trending Now