Инженерия факультеті



бет3/4
Дата26.02.2023
өлшемі34.48 Kb.
#470078
1   2   3   4
кцт бөж

class GenericClass {
E getFirst() { ... }
void add(E obj) { ... }
}


// Использование обобщённого класса в коде
GenericClass obj = new GenericClass<>();
obj.add("qwerty");
String p = obj.getFirst();
Сыныптарды, интерфейстерді және әдістерді жалпылама жариялауға рұқсат етіледі. Сонымен қатар, синтаксис шектеулі типтік-параметр декларацияларын қолдайды: t типті параметр A, B, C және т. б. интерфейстерді енгізуді талап етеді.

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


Java-да объектінің қай сыныпқа жататынын нақты тексеруге болады. Foo instanceof Foo өрнегі Foo объектісі Foo класына немесе оның мұрагеріне тиесілі болса немесе Foo интерфейсін жүзеге асырса (немесе жалпы алғанда, Foo мұра ететін интерфейсті жүзеге асыратын сыныпты мұра етсе) шын мәніне тең.
Келесі функция getClass().барлық нысандар үшін анықталған, class < типті нысанды береді?>. Әр класс үшін оны сипаттайтын бір ғана класс типті объект жасалады, сондықтан бұл объектілерді салыстыруға болады. Мысалы, foo.getClass() == bar.егер foo және bar нысандары бір сыныпқа жатса, getClass() дұрыс болады.
Сонымен қатар, class < типті объект?> кез-келген түрді келесідей алуға болады: Integer.class, Object.class.
Тікелей сыныпты салыстыру әрқашан сыныпты тексерудің оңтайлы құралы бола бермейді. Көбінесе оның орнына isassignablefrom () функциясы қолданылады. Бұл функция Class типті объектіде анықталады және Class < типті объектіні қабылдайды?> параметр ретінде. Осылайша, Foo қоңырауы.class.isAssignableFrom(Bar.егер Foo Bar класының атасы болса, class) шын мәнін қайтарады. Барлық нысандар object түрінің ұрпақтары болғандықтан, object қоңырауы.class.isAssignableFrom () әрқашан шын мәнін қайтарады.
Class типті объектінің аталған функцияларымен жұптастырылған isInstance функциялары да қолданылады.
Java-дағы қателерді өңдеу C++ - дағы қателерді өңдеуге ұқсас, тек finally блогының қажеттілігін қоспағанда. Бұл айырмашылық Java қоқыс жинағыштың болуына байланысты RAII тұжырымдамасын ұстана алмайтындығына байланысты, ал деструктордағы ресурстарды автоматты түрде босату ерікті уақыт аралығында болжанбайтын тәртіппен жүруі мүмкін.
Try, catch және finally операторларының көмегімен қателерді өңдеу жүзеге асырылады. Шығарылатын қатені Throwable-дан мұраланған және қате түріне сәйкес келетін белгілі бір сыныптың объектісі сипаттайды. Try блогының ішіне ерекше жағдайды тастай алатын код орналастырылған, ал catch блогы бағдарламашы көрсеткен қате түрлерін ұстайды. Бұл әртүрлі қателер кластарын өңдеу үшін бірнеше catch блогын немесе бірнеше қателерді өңдеу үшін multi-catch көрсетуге мүмкіндік береді. Finally блогы міндетті емес, бірақ егер бар болса, қатенің пайда болуына қарамастан орындалады және try блогының жұмысы кезінде бөлінген ресурстарды босатуға арналған.
Java 7-ден бастап AutoCloseable интерфейсіне қолдау көрсетіледі, бұл ресурстарды автоматты түрде босататын сыныптарды жүзеге асыруға мүмкіндік береді. Мұндай сыныптардың нысандарын try блогының алдында жақшаға салу қажет.
Java желілік қосымшалардың барлық дерлік түрлерінің негізі болып табылады және ендірілген және Мобильді қосымшаларды, ойындарды, веб-мазмұнды және кәсіпорын бағдарламалық жасақтамасын әзірлеу мен таратудың жалпы стандарты болып табылады. Әлемде Java-да қосымшаларды әзірлейтін 9 миллионнан астам маман бар, олар керемет қосымшалар мен қызметтерді тиімді жобалауға, енгізуге және пайдалануға мүмкіндік береді.
Ноутбуктерден деректер жинау орталықтарына дейін, ойын консольдерінен бастап ғылыми әзірлемелер үшін пайдаланылатын суперкомпьютерлерге дейін, ұялы телефондардан Интернет желісіне дейін — Java барлық жерде қолданылады!



Достарыңызбен бөлісу:
1   2   3   4




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет