Java ni nini au vipengele vya lugha. Lugha ya programu ya Java: wapi kuanza kujifunza. Java inatumika wapi?

Lugha ya programu ya Java ni lugha ya programu inayolengwa na kitu ambayo iliundwa na James Gosling na wahandisi wengine katika Sun Microsystems. Ilitengenezwa mnamo 1991 kama sehemu ya "Mradi wa Kijani", na ilitangazwa rasmi mnamo Mei 23, 1995, huko SunWorld, na kutolewa mnamo Novemba. Java ilitengenezwa awali kama mbadala wa C++ (ingawa seti ya kipengele inafanana zaidi na Lengo C) na inajulikana kama Mti wa Oak (baada ya mti nje ya ofisi ya Gosling). Maelezo zaidi kuhusu historia ya Java yanaweza kupatikana katika makala kuhusu jukwaa la Java, ambalo linajumuisha lugha, Mashine ya Mtandaoni ya Java, na API ya Java. Java inamilikiwa na Sun Microsystems; Java ni chapa ya biashara ya Sun Microsystems.

Kulikuwa na malengo manne kuu wakati wa kuunda lugha ya Java:

  • Lugha inayolenga kitu.
  • Mfumo lengwa unajitegemea (zaidi au chini).
  • Lazima iwe na vitu na maktaba za kufanya kazi kwenye mtandao.
  • Imeundwa kutekeleza nambari kutoka kwa vyanzo vya mbali kwa usalama.

Mwelekeo wa kitu
Sifa ya kwanza, yenye mwelekeo wa kitu ("OO"), inarejelea mbinu ya upangaji wa programu na muundo wa lugha kwa ajili ya dummies. Wazo la msingi la OO ni kwamba muundo wa programu ni "vitu" vyote (yaani, vitu) vinavyoweza kubadilishwa, badala ya vitendo vinavyohitaji kufanywa. Hii inatokana na ukweli kwamba mambo ya awali (mambo) hubadilika mara kwa mara na kwa kiasi kikubwa zaidi kuliko vitendo, na kufanya vitu hivyo (kwa kweli vitu vyenye data) msingi imara zaidi wa maendeleo ya programu. Lengo ni kufanya miradi mikubwa ya programu iweze kudhibitiwa kwa urahisi, na hivyo kuongeza ubora na kupunguza idadi ya miradi iliyoshindwa ya programu kwa wanaoanza.

Jukwaa la kujitegemea

Tabia ya pili, uhuru wa jukwaa, inamaanisha kuwa programu zilizoandikwa katika Java zinapaswa kufanya sawa kwenye vifaa tofauti. Mpangaji programu anapaswa kuwa na uwezo wa kuandika programu mara moja na kuiendesha popote. Hii inafanikiwa kwa kuandaa msimbo wa Java "nusu" kwenye bytecode - maagizo ya mashine iliyorahisishwa ambayo yanahusiana na seti ya kawaida ya amri halisi kwa processor. Nambari hii basi inahitaji kuendeshwa kwenye mashine pepe, ambayo ni programu iliyoandikwa kwa msimbo wa mashine ili kuunganishwa na maunzi ambayo hutafsiri Java bytecode kuwa msimbo unaoweza kutumika kwenye maunzi mahususi. Kwa kuongezea, maktaba sanifu hutolewa ili kuwezesha vipengele vya usanifu mahususi vya mashine (kama vile michoro na mitandao) kufikiwa kwa njia inayofanana. Lugha ya Java pia inajumuisha usaidizi kwa programu zenye nyuzi nyingi - hitaji muhimu kwa programu nyingi za mtandao na msingi wa programu.

Utekelezaji wa kwanza wa lugha ulitumia mashine pepe ya kutafsiri ili kufikia uwezakano wa kubebeka, na utekelezaji mwingi bado unatumia mbinu hii leo. Hata hivyo, utekelezaji huu huzalisha programu zinazoendesha polepole kuliko programu zilizokusanywa kikamilifu zinazozalishwa na mkusanyaji wa kawaida wa C++ na wakusanyaji wa hivi majuzi wa lugha ya Java, kwa hivyo lugha inakabiliwa na sifa iliyopatikana ya kuwa "polepole." Katika utekelezaji wa hivi karibuni zaidi, Java VM inaunda programu zinazoendesha haraka sana kwa kutumia mbinu kadhaa.

Njia ya kwanza ni kukusanya moja kwa moja kwa msimbo wa mashine, kama mkusanyaji wa kitamaduni, kuruka hatua nzima ya kugeuza programu kuwa bytecode. Hii inafanikisha tija kubwa, lakini kwa gharama ya upotezaji wa portability na portability ya programu. Njia nyingine, JIT, au JIT, inakusanya Java bytecode katika msimbo wa mashine wakati programu inaendeshwa. Mashine changamano zaidi zimetumia urejeshaji wa nguvu, ambapo VJM inaweza kuchanganua tabia ya programu na kukusanya na kuboresha sehemu muhimu za programu kwa kuchagua. Teknolojia hizi zote mbili huruhusu programu kuchukua faida ya kasi ya msimbo wa mashine bila kupoteza uwezo wa kubebeka.

Uwezo wa kubebeka ni lengo gumu kitaalam kufikia, na mafanikio ya Java katika kufikia lengo hili ni suala la mjadala. Ingawa kwa kweli inawezekana kuandika programu za jukwaa la Java ambazo zinafanya sawa kwenye majukwaa mengi, majukwaa mengi yanayopatikana hayatekelezi programu kama inavyotarajiwa, lakini hutoa idadi ndogo ya makosa au kutokwenda, ambayo imesababisha mbishi wa. kauli mbiu maarufu ya Jua "Andika mara moja, fanya kazi kila mahali" hadi nyingine "Andika mara moja, suluhisha kila mahali."

Java huru ya jukwaa, hata hivyo, imekuwa na mafanikio makubwa kwa seva za programu kama vile huduma za wavuti, servlets, au Enterprise Java Beans.

Salama utekelezaji wa msimbo wa mbali

Jukwaa la Java lilikuwa moja ya mifumo ya kwanza kutoa usaidizi mpana wa kutekeleza nambari kutoka kwa vyanzo vya mbali. Applet inaweza kufanya kazi katika kivinjari cha mtumiaji; wakati wa kutekeleza msimbo, inaweza kupakua kipande kidogo cha msimbo wa mtu mwingine kutoka kwa seva ya mbali ya HTTP na kuitekeleza. Utekelezaji wa msimbo wa mbali hutokea kwenye kisanduku kidogo sana cha mchanga ambacho humlinda mtumiaji dhidi ya msimbo usio sahihi au hasidi. Wachapishaji wa maombi kama haya wanaweza kutuma maombi ya cheti ambacho wangeweza kutumia kusaini applets kidijitali kama "salama", na kuwapa ruhusa ya kutoka kwenye sanduku la mchanga na kupata ufikiaji wa mfumo wa faili wa ndani na mtandao, bila shaka mchakato huu unafanyika chini ya udhibiti wa mtumiaji.

Kulingana na watu wengi, teknolojia ya Java inafaa kabisa kwa madhumuni haya yote. Lugha, hata hivyo, haina mapungufu.

Java kwa ujumla ni kiwango cha juu zaidi kuliko lugha zinazofanana (kama vile C++), ambayo ina maana kwamba lugha ya Java haina vipengele kama vile maunzi au kufanya kazi na aina mahususi za data au, kwa mfano, vielelezo vya kiwango cha chini vya maeneo ya kumbukumbu kiholela. Ingawa vipengele hivi mara nyingi hutumiwa vibaya au kutumiwa vibaya na watayarishaji programu, pia ni zana zenye nguvu. Hata hivyo, teknolojia ya Java inajumuisha Kiolesura Native cha Java (JNI), njia ya kupiga msimbo asilia kutoka kwa msimbo wa Java. Ukiwa na JNI unaweza kutumia vipengele hivi.

Watengenezaji programu wengine pia wanalalamika juu ya ukosefu wa urithi mwingi, kipengele chenye nguvu cha lugha kadhaa za programu zinazoelekezwa na kitu kama vile C++. Lugha ya Java hutenganisha urithi wa aina na utekelezaji, ikiruhusu urithi wa ufafanuzi wa aina nyingi kupitia miingiliano, lakini urithi mmoja tu wa aina ya data kupitia daraja la darasa. Hii hukuruhusu kuchukua faida ya faida nyingi za urithi mwingi huku ukiepuka hatari zake nyingi. Zaidi ya hayo, kupitia madarasa madhubuti, madarasa ya kufikirika, na violesura, kipanga programu cha Java kina uwezo wa kuchagua utekelezaji kamili, nusu au sufuri kwa aina ya kitu anachoamua ambacho hutoa matumizi ya juu zaidi katika ukuzaji wa programu.

Kuna watu ambao wanaamini kuwa kwa miradi fulani, mbinu inayolenga kitu hufanya kazi kuwa ngumu zaidi, na kwa wengine ni rahisi zaidi. Malalamiko haya si ya kipekee kwa lugha ya Java kwa sababu yanaenea hadi lugha zingine zinazolenga kitu.

Mfano wa programu ya "hello world" katika Java:

Darasa la umma HelloWorld ( utupu wa utupu wa umma (String args) ( System.out.println("Hujambo ulimwengu!"); ) )

Maagizo ya kudhibiti:
Mizunguko
ilhali ( usemi wa Boolean) ( taarifa(s) ) fanya ( kauli(s) ) huku ( usemi wa Boolean); kwa (kuanzisha ; hali ya kukomesha ; kuongeza expr) (taarifa)
Waendeshaji wa masharti
ikiwa ( usemi wa Boolean) ( taarifa(s) ) ikiwa ( usemi wa Boolean) ( taarifa(s) ) vinginevyo ( taarifa)
Chaguo
ikiwa ( usemi wa Boolean) ( statement(s) ) vinginevyo ikiwa (Maelezo ya Boolean) ( statement(s) ) vinginevyo ikiwa (Semi ya Boolean) ( statement(s) ) vinginevyo ( statement(s) ) badilisha (integer expression) ( kesi ya kudumu integer expr: taarifa/mapumziko; ... chaguo-msingi: taarifa/mapumziko; )
Kukamata mende
jaribu ( taarifa(s) ) catch (aina ya ubaguzi) ( taarifa(s) ) kamata (aina ya ubaguzi) ( taarifa(s) ) hatimaye ( taarifa)
Aina za Takwimu za Msingi

Herufi zinaweza kuhifadhiwa katika usimbaji wa Unicode wa 16-bit. Tabia kama hiyo inaweza kuwa na herufi zote za kawaida, lakini pia inajumuisha seti za herufi za lugha nyingi isipokuwa Kiingereza, pamoja na Kigiriki, Kisiriliki, Kichina, Kiarabu, n.k. Programu za Java zinaweza kutumia herufi hizi zote, ingawa wahariri wengi hawana usaidizi wa ndani wa seti za wahusika ambazo hutofautiana na herufi za kawaida za ASCII. Safu na kamba sio aina za zamani: ni vitu.

Lugha ya Java iliundwa mwaka wa 1995, na zaidi ya miaka 22 ya kuwepo kwake imeshinda mioyo ya mamilioni ya watengeneza programu. Alifanyaje? Kwa nini hakuna uingizwaji mmoja unaofaa wakati huu? Ili kuelewa hili, hebu tuzungumze kuhusu vipengele vya lugha ya Java.

Wakati wa kutoa lugha, Sun Microsystems iliweka dhana 5 kwa mafanikio yanayoweza kutokea:

  1. unyenyekevu, mwelekeo wa kitu na uelewa;
  2. kuegemea na usalama;
  3. kubebeka na uhuru wa jukwaa;
  4. utendaji wa juu;
  5. tafsiri, mtiririko na mabadiliko.

Hebu tuangalie kila mmoja wao kwa undani zaidi.

Urahisi

Sintaksia ya lugha ilirithiwa kutoka kwa C++. Leo, ikilinganishwa na Python, Groove au Go, haiwezi kuitwa rahisi, lakini basi kuonekana kwake kwa mabadiliko kulifanya iwezekanavyo kuvutia tahadhari ya watengenezaji wa C.

Mpango wa kawaida wa Hello World unaonekana kama hii:

utupu tuli wa umma (String args)
{
System.out.println("Hujambo Ulimwengu");
}

Aina hii ya ujenzi haina kuongeza kasi ya kuandika, lakini ni rahisi kusoma, kuelewa na kuzaliana.

Kuegemea

Kuegemea kunahakikishwa na kanuni mbili:

  • OOP. Daraja la mirathi huongeza usomaji wa msimbo na hupunguza makosa yasiyolazimishwa.
  • Kuandika kwa nguvu. Msanidi lazima afanye kazi zaidi, lakini data inafasiriwa bila utata.

Kwa kuongeza, Java awali ilikuwa na lengo la kuzuia upatikanaji wa kumbukumbu ya moja kwa moja, ambayo pia ingeongeza kuegemea. Lakini watengenezaji waliacha mianya kadhaa, kwa mfano sun.misc.Usalama backdoor, kwamba bypass marufuku hii.

Usalama

Mbali na kuhifadhi aina ya jumla ya ujenzi, Java, ikilinganishwa na C++, imepoteza rasmi hatari mbili zinazowezekana: viashiria na urithi mwingi. Kwa kweli, kazi zote mbili zimehifadhiwa, lakini zinawasilishwa kwa fomu tofauti: maadili hutumiwa badala ya viashiria, na miingiliano, badala ya madarasa, inahusika katika urithi nyingi. Walakini, kipengele hiki cha programu ya java karibu huondoa uharibifu unaowezekana kutoka kwa uzembe wa msanidi programu.

Urahisi

Wazo la Java linasikika kama: "Andika mara moja, kimbia popote." Hiyo ni, utekelezaji wa msimbo hautegemei mfumo wa uendeshaji uliotumiwa au programu iliyowekwa. Hii inafanikiwa kupitia tafsiri katika bytecode na mashine pepe ya JVM.

Kipengele hiki cha java kwenye Android kilikuja kwa manufaa sana. Aina mbalimbali za wazalishaji, mifano ya simu, sifa - yote haya yanaweza kuathiri vibaya uendeshaji wa programu ikiwa sio kwa kuwepo kwa chombo hicho cha ulimwengu wote.

Utendaji

Upekee wa Java unaohusishwa na tafsiri katika bytecode pia una athari chanya katika utendaji wa bidhaa za mwisho. Kwa upande wa kasi ya utekelezaji, programu zinazofanana katika Java ni mara 1.5-2 duni kuliko programu katika C/C++, huku zikiwa bora kuliko JavaScript, Ruby, na Python.

Mfumo wa ikolojia ulioendelezwa

Katika kipindi cha miaka 22 ya maisha yake, lugha imepata vitambulisho na mifumo kadhaa, mamia ya jumuiya na vikao, maelfu ya maktaba na programu-jalizi. Yote hii ina athari ya manufaa kwenye kizingiti cha kuingia katika taaluma, mahitaji na ubora wa bidhaa zinazozalishwa kwa kutumia Java.

Bila shaka, kila lugha maarufu ya programu ni ya kipekee, kila mmoja ana hasara na faida zake. Sifa za Java sio za mapinduzi; ni ndogo, lakini wakati huo huo ni za msingi. Hiki ndicho kinachotofautisha lugha nzuri na bora.

Kupanga ni kuandika msimbo wa chanzo wa programu katika mojawapo ya lugha za programu. Kuna lugha nyingi tofauti za programu, shukrani ambayo kila aina ya programu huundwa ambayo husuluhisha shida fulani. Lugha ya programu ni seti ya maneno yaliyohifadhiwa ambayo msimbo wa chanzo wa programu umeandikwa. Mifumo ya kompyuta bado (bado) haiwezi kuelewa lugha ya binadamu, zaidi ya mantiki ya binadamu (hasa mantiki ya kike), hivyo programu zote zimeandikwa katika lugha za programu, ambazo hutafsiriwa baadaye katika lugha ya kompyuta au msimbo wa mashine. Mifumo inayotafsiri msimbo wa chanzo cha programu kuwa msimbo wa mashine ni ngumu sana na, kama sheria, huundwa zaidi ya miezi kadhaa na watengenezaji programu kadhaa. Mifumo kama hiyo inaitwa mazingira ya programu iliyojumuishwa au zana.

Mfumo wa programu ni mazingira makubwa ya kuona yaliyofikiriwa vizuri ambapo unaweza kuandika msimbo wa chanzo wa programu, kuitafsiri kuwa msimbo wa mashine, jaribio, utatuzi na mengi zaidi. Zaidi ya hayo, kuna programu zinazokuwezesha kufanya vitendo hapo juu kwa kutumia mstari wa amri.

Labda umesikia neno "programu imeandikwa kwa Windows au Linux au Unix" zaidi ya mara moja. Ukweli ni kwamba mazingira ya programu wakati wa kutafsiri lugha ya programu kwenye msimbo wa mashine inaweza kuwa ya aina mbili - wakusanyaji na wakalimani. Kukusanya au kutafsiri programu hubainisha jinsi programu itaendelea kutekelezwa kwenye kifaa. Programu zilizoandikwa katika Java daima hufanya kazi kwa misingi ya tafsiri, wakati programu zilizoandikwa katika C/C ++ zinakusanywa. Kuna tofauti gani kati ya njia hizi mbili?

Mkusanyaji, baada ya kuandika msimbo wa chanzo wakati wa mkusanyiko, anasoma msimbo mzima wa chanzo cha programu mara moja na kutafsiri kwa msimbo wa mashine. Baada ya hapo mpango huo unapatikana kwa ujumla na unaweza kutekelezwa tu katika mfumo wa uendeshaji ambao uliandikwa. Kwa hiyo, mipango iliyoandikwa kwa Windows haiwezi kufanya kazi katika mazingira ya Linux na kinyume chake. Mkalimani hutekeleza mpango hatua kwa hatua au mstari kwa mstari kila wakati inapotekelezwa. Wakati wa kutafsiri, sio nambari inayoweza kutekelezeka huundwa, lakini nambari ya kawaida, ambayo baadaye inatekelezwa na mashine ya Java. Kwa hivyo, kwenye jukwaa lolote - Windows au Linux, programu za Java zinaweza kutekelezwa kwa usawa ikiwa kuna mashine ya Java kwenye mfumo, ambayo pia huitwa Mfumo wa Runtime.

Upangaji unaolenga kitu

Programu inayolenga kitu imejengwa kwa misingi ya vitu, ambayo ni sawa na ulimwengu wetu. Ikiwa unatazama karibu na wewe, unaweza kupata kitu ambacho kitakusaidia kuelewa wazi zaidi mfano wa programu hiyo. Kwa mfano, sasa nimekaa kwenye dawati langu na kuandika sura hii kwenye kompyuta, ambayo inajumuisha kufuatilia, kitengo cha mfumo, kibodi, kipanya, wasemaji, na kadhalika. Sehemu hizi zote ni vitu vinavyounda kompyuta. Kujua hili, ni rahisi sana kuunda aina fulani ya mfano wa jumla wa uendeshaji wa kompyuta nzima. Ikiwa huelewi ugumu wa programu na mali ya vifaa vya kompyuta, basi tunaweza kusema kwamba kitu cha Kitengo cha Mfumo hufanya vitendo fulani vinavyoonyeshwa na kitu cha Monitor. Kwa upande wake, kitu cha Kibodi kinaweza kurekebisha au hata kuweka vitendo kwa kitu cha Kitengo cha Mfumo, ambacho huathiri utendakazi wa kitu cha Kufuatilia. Mchakato uliowasilishwa unaonyesha vyema mfumo mzima wa programu unaolenga kitu.

Hebu fikiria bidhaa fulani yenye nguvu ya programu iliyo na mamia ya maelfu ya mistari ya msimbo. Mpango mzima unatekelezwa mstari kwa mstari, mstari kwa mstari, na kwa kanuni kila moja ya mistari inayofuata ya kanuni itaunganishwa kwa mstari uliopita wa kanuni. Ikiwa hutumii programu inayolenga kitu, na wakati unahitaji kubadilisha msimbo huu wa programu, sema, ikiwa unahitaji kuboresha vipengele vingine, basi itabidi ufanye kazi nyingi na msimbo mzima wa chanzo cha programu hii.

Katika programu inayolenga kitu kila kitu ni rahisi zaidi, hebu turudi kwenye mfano wa mfumo wa kompyuta. Wacha tuseme hujaridhika tena na kifuatiliaji cha inchi kumi na saba. Unaweza kuibadilisha kwa urahisi kwa ufuatiliaji wa inchi ishirini, bila shaka, ikiwa una rasilimali fulani za kifedha. Mchakato wa kubadilishana yenyewe hautajumuisha shida kubwa, isipokuwa lazima ubadilishe dereva, futa vumbi kutoka chini ya mfuatiliaji wa zamani na ndivyo hivyo. Upangaji programu unaolenga kitu unategemea takriban kanuni hii ya uendeshaji, ambapo sehemu fulani ya msimbo inaweza kuwakilisha darasa la vitu vyenye usawa ambavyo vinaweza kuboreshwa au kubadilishwa kwa urahisi.

Programu inayoelekezwa kwa kitu kwa urahisi sana na inaonyesha wazi kiini cha shida inayotatuliwa na, muhimu zaidi, inafanya uwezekano wa kuondoa vitu visivyo vya lazima bila kuharibu programu nzima, kubadilisha vitu hivi na vipya zaidi. Ipasavyo, usomaji wa jumla wa msimbo wa chanzo wa programu nzima inakuwa rahisi zaidi. Pia ni muhimu kwamba kanuni sawa inaweza kutumika katika programu tofauti kabisa.

Madarasa

Msingi wa programu zote za Java ni madarasa, ambayo programu inayolenga kitu inategemea. Kwa kweli tayari unajua madarasa ni nini, lakini bado haujatambua. Katika sehemu iliyopita tulizungumza juu ya vitu, kwa kutumia muundo wa kompyuta nzima kama mfano. Kila kitu ambacho kompyuta imekusanyika ni mwakilishi wa darasa lake. Kwa mfano, darasa la Monitor huunganisha wachunguzi wote, bila kujali aina zao, ukubwa na uwezo, na mfuatiliaji mmoja amesimama kwenye dawati lako ni kitu cha darasa la kufuatilia.

Njia hii inafanya iwe rahisi sana kuiga kila aina ya michakato ya programu, na kuifanya iwe rahisi kutatua shida. Kwa mfano, kuna vitu vinne vya madarasa manne tofauti: kufuatilia, kitengo cha mfumo, kibodi na wasemaji. Ili kucheza faili ya sauti, unahitaji kutoa amri kwa kitengo cha mfumo kwa kutumia kibodi; utaona hatua ya kutoa amri kwenye mfuatiliaji na, kwa sababu hiyo, wasemaji watacheza faili ya sauti. Hiyo ni, kitu chochote ni sehemu ya darasa fulani na ina zana na uwezo wote unaopatikana kwa darasa hili. Kunaweza kuwa na vitu vingi vya darasa moja inavyohitajika ili kutatua tatizo.

Mbinu

Wakati mfano wa kucheza faili ya sauti ulitolewa, ilitajwa kuwa amri au ujumbe ulitolewa, kwa misingi ambayo vitendo fulani vilifanywa. Kazi ya kufanya vitendo hutatuliwa kwa kutumia njia ambazo kila kitu kina. Mbinu ni seti ya amri ambazo zinaweza kutumika kufanya vitendo fulani na kitu.

Kila kitu kina madhumuni yake mwenyewe na imeundwa kutatua aina fulani ya matatizo kwa kutumia mbinu. Je, kitu cha Kinanda kitakuwa na manufaa gani, kwa mfano, ikiwa huwezi kubonyeza vitufe na bado ungeweza kutoa amri? Kipengee cha Kibodi kina idadi fulani ya funguo ambazo mtumiaji hupata udhibiti wa kifaa cha kuingiza data na anaweza kutoa amri zinazohitajika. Amri kama hizo huchakatwa kwa kutumia njia.

Kwa mfano, bonyeza kitufe cha Esc ili kughairi vitendo vyovyote na kwa hivyo kutoa amri kwa njia iliyopewa ufunguo huu, ambayo hutatua kazi hii katika kiwango cha programu. Swali linatokea mara moja juu ya idadi ya njia za kitu cha Kinanda, lakini kunaweza kuwa na utekelezaji tofauti - kutoka kwa kufafanua njia kwa kila funguo (ambayo, kwa ujumla, sio busara), na kuunda njia moja ambayo itafuatilia hali ya jumla ya kibodi. Hiyo ni, njia hii inafuatilia ikiwa ufunguo umesisitizwa, na kisha, kulingana na ufunguo gani umeanzishwa, huamua nini cha kufanya.

Kwa hivyo, tunaona kwamba kila moja ya vitu inaweza kuwa na seti ya njia za kutatua matatizo mbalimbali. Na kwa kuwa kila kitu ni kitu cha darasa fulani, zinageuka kuwa darasa lina seti ya njia ambazo hutumiwa na vitu mbalimbali vya darasa moja. Katika Java, njia zote unazounda lazima ziwe za au ziwe sehemu ya darasa maalum.

Sintaksia na semantiki za lugha ya Java

Ili kuzungumza na kusoma lugha yoyote ya kigeni, unahitaji kujifunza alfabeti na sarufi ya lugha hiyo. Hali kama hiyo inazingatiwa wakati wa kusoma lugha za programu, na tofauti pekee, inaonekana kwangu, kwamba mchakato huu ni rahisi zaidi. Lakini kabla ya kuanza kuandika msimbo wa chanzo wa programu, lazima kwanza utatue tatizo ulilopewa kwa namna yoyote inayofaa kwako.

Wacha tuunda darasa fulani ambalo linawajibika, kwa mfano, kwa simu, ambayo itakuwa na njia mbili tu: kuwasha na kuzima simu hii. Kwa kuwa kwa sasa hatujui syntax ya lugha ya Java, tutaandika darasa la Simu katika lugha ya kufikirika.

Simu ya darasa
{
Wezesha () mbinu
{
// shughuli za kuwasha simu
}
Zima () mbinu
{
// shughuli za kuzima simu
}
}

Darasa la Simu linaweza kuonekana kama hii. Kumbuka kwamba brashi za curly zinaonyesha mwanzo na mwisho wa mwili wa darasa, mbinu, au mlolongo wowote wa data, kwa mtiririko huo. Hiyo ni, mabano yanaonyesha uanachama katika mbinu au darasa. Kwa kila mabano ya ufunguzi lazima kuwe na mabano ya kufunga. Ili kuepuka kuchanganyikiwa, kwa kawaida huwekwa kwenye kiwango sawa katika kanuni.

Sasa hebu tuandike darasa moja tu kwenye Java.

Simu ya darasa
{
utupu kwenye()
{
// mwili wa on() njia
}
utupu mbali ()
{
// mwili wa njia ya kuzima ().
}
}

Darasa la neno kuu katika lugha ya Java hutangaza darasa, ikifuatiwa na jina la darasa yenyewe. Kwa upande wetu, hii ni Telefon. Maneno machache tu kuhusu rejista ya kurekodi. Karibu katika lugha zote za programu, ni muhimu kuhifadhi majina katika rejista ambayo yaliandikwa. Ikiwa uliandika Telefon, basi tahajia kama vile telefon au TELefoN itatoa hitilafu wakati wa ujumuishaji. Kama tulivyoandika hapo awali, hivi ndivyo tunapaswa kuendelea kuandika.

Maneno yaliyohifadhiwa au muhimu yameandikwa katika kesi zao maalum, na huwezi kuzitumia kwa kuzitaja kwa mbinu, madarasa, vitu, na kadhalika. Nafasi kati ya maneno haijalishi kwa sababu mkusanyaji huzipuuza tu, lakini ni muhimu kwa usomaji wa msimbo.

Katika mwili wa darasa la Telefon kuna njia mbili: juu ya () - inawasha simu na kuzima () njia - huzima simu. Njia zote mbili zina miili yao wenyewe na, kwa nadharia, zinapaswa kuwa na msimbo wa chanzo ambao unaelezea vitendo muhimu vya njia zote mbili. Kwa sisi sasa haijalishi jinsi njia hizi zinatekelezwa, jambo kuu ni syntax ya lugha ya Java.

Njia zote mbili zina mabano kwenye() ambamo vigezo vinaweza kuandikwa, kama vile on(int time) au on(int time, int time1). Kwa msaada wa vigezo, kuna aina ya uhusiano kati ya mbinu na ulimwengu wa nje. Njia ya on(int time) inasemekana kuchukua parameta ya muda. Ni ya nini? Kwa mfano, ungependa simu yako iwashe kwa wakati fulani. Kisha thamani kamili katika parameter ya muda itapitishwa kwa mwili wa njia na, kulingana na data iliyopokelewa, simu itawashwa. Ikiwa mabano ni tupu, basi njia haikubali vigezo vyovyote.

Maoni

Katika darasa la Telefon, katika miili ya njia zote mbili kuna kuingia baada ya kufyeka mbili: //. Ingizo hili linaashiria maoni ambayo yatapuuzwa na mkusanyaji, lakini yanahitajika kwa usomaji wa msimbo. Maelezo zaidi unayotoa maoni yako unapoandika programu, ndivyo uwezekano wa kukumbuka zaidi katika mwaka mmoja umekuwa ukifanyia kazi wakati huu wote.

Maoni katika Java yanaweza kuwa ya aina tatu:

//, /*…*/ Na /**…*/

Maoni yaliyoandikwa kwa kutumia // operator lazima yaonekane kwenye mstari mmoja:

// Mstari mmoja
!!! Hitilafu! Huwezi kuifunga kwenye mstari wa pili!
// Mstari wa kwanza
// Mstari wa pili
// …
// Mstari wa mwisho

Maoni kwa kutumia /*...*/ waendeshaji wanaweza kuchukua mistari mingi. Mwanzoni mwa maoni yako, weka /*, na mwisho, unapomaliza kutoa maoni kwa msimbo, weka operator */. Aina ya mwisho ya maoni /**…*/ inatumika wakati wa kuweka kumbukumbu na inaweza pia kupatikana kwenye nambari yoyote ya mistari.

Aina za data za Java

Ili kuweka thamani ya kiholela, Java ina aina za data. Katika darasa la Telefon tumeunda njia mbili. Njia zote mbili hazikuwa na vigezo, lakini wakati mfano wa on(int time) njia na parameta ya wakati ulitolewa, walizungumza juu ya kupitisha thamani kwa njia. Thamani hii ilionyesha muda ambao simu inapaswa kuwashwa. Kiainishi cha int huamua aina ya thamani ya wakati. Kuna aina sita za data katika Java 2 ME.

Byte - thamani ndogo kamili kutoka -128 hadi 128;
fupi - thamani fupi kamili katika safu kutoka -32768 hadi 32767;
int - ina thamani yoyote kamili kutoka -2147483648 hadi 2147483647;
muda mrefu - thamani kamili kamili, kutoka -922337203685475808 hadi 9223372036854775807;
char ni tabia ya Unicode mara kwa mara. Aina ya umbizo hili ni kutoka 0 hadi 65536, ambayo ni sawa na herufi 256. Tabia yoyote ya aina hii lazima iandikwe kwa nukuu moja, kwa mfano: 'G';
boolean ni aina ya kimantiki ambayo ina maadili mawili tu: uongo na kweli. Aina hii hutumiwa mara nyingi katika vitanzi, ambayo itajadiliwa baadaye. Maana ni rahisi sana - ikiwa una pesa katika mfuko wako, inapaswa kuwa kweli, na ikiwa sio, basi ni uongo. Kwa hivyo, ikiwa tuna pesa, tunaenda dukani kwa mkate au bia (sisitiza kinachofaa), ikiwa hakuna pesa, tunakaa nyumbani. Hiyo ni, hii ni thamani ya kimantiki ambayo inachangia uchaguzi wa vitendo zaidi vya programu yako.

Ili kutangaza thamani fulani muhimu, tumia ingizo lifuatalo:

Int wakati;
BigTime ndefu;
neno char;

Opereta ya semicolon inahitajika baada ya maingizo na imewekwa mwishoni mwa mstari. Unaweza kuchanganya matamko kadhaa ya aina moja, ikitenganishwa na koma:

Wakati wa Mt, wakati1, wakati2;

Sasa hebu tuboreshe darasa letu la Telefon kwa kuongeza maadili kadhaa kwake. Hatuhitaji tena njia za on() na off(); wacha tuongeze njia mpya ambazo zinaweza kutatua shida fulani.

Simu ya darasa
{
//S - eneo la maonyesho
//w - upana wa kuonyesha
//h - urefu wa kuonyesha
int w, h, S;
//njia inayohesabu eneo la onyesho
eneo la vord ()
{
S = w*h;
}
}

Kwa hiyo, tuna vigezo vitatu S, w na h, ambavyo vinawajibika, kwa mtiririko huo, kwa eneo, upana na urefu wa maonyesho katika saizi. Njia ya Area() huhesabu eneo la skrini ya simu kwa saizi. Uendeshaji hauna maana, lakini ni kielelezo sana na rahisi kuelewa. Mwili wa Njia ya Eneo () imejikuta yenyewe na ina fomu S = w * h. Kwa njia hii, tunazidisha upana kwa urefu na kugawa au, kama wanasema, kuhifadhi matokeo katika kutofautisha S. Tofauti hii itakuwa na maadili ya eneo la onyesho la simu hii. .

Sasa tumekuja karibu na waendeshaji wa lugha ya Java, kwa msaada ambao unaweza kufanya kila aina ya shughuli. Waendeshaji wa lugha ya Java, pamoja na lugha nyingine za programu, wana madhumuni yao wenyewe. Kwa hivyo kuna waendeshaji hesabu, waendeshaji wa kuongeza na kupunguza, waendeshaji wa kimantiki na waendeshaji uhusiano. Wacha tuangalie kila moja ya waendeshaji hapo juu.

Waendeshaji hesabu

Waendeshaji wote wa hesabu ni rahisi sana na sawa na kuzidisha "*", mgawanyiko "/", kuongeza "+" na kutoa "-" waendeshaji kutumika katika hisabati. Kuna opereta wa mgawanyiko wa modulo "%" na hali ya kutatanisha kidogo kwa mtazamo wa kwanza na opereta sawa "=". Opereta sawa anaitwa opereta ya mgawo katika lugha za programu:

Hapa unapeana thamani 3 kwa mabadiliko x. Na opereta "sawa" katika lugha za programu inalingana na kuandika waendeshaji "sawa" mbili mfululizo: "==". Hebu tuangalie mfano wa nini waendeshaji mbalimbali wa hesabu wanaweza kufanya.

Int x, y, z;
x = 5;
y = 3;
z = 0;
z = x + y;

Katika kesi hii, z itakuwa na thamani ya jumla ya x na y, ambayo ni, 8.

Tofauti x ilikuwa na thamani ya 5, lakini baada ya kurekodi hii thamani ya awali inapotea na bidhaa z*x (8*5) imeandikwa, ambayo ni sawa na 40. Sasa, ikiwa tutaendelea msimbo wetu zaidi, vigezo vitaonekana. kama hii:

// x = 40;
// y = 3;
// z = 8;

Waendeshaji wa kuongeza na kutoa wana madhumuni sawa na katika hisabati. Nambari hasi pia zinahusiana.

Kupunguza "--" na waendeshaji "++" ni maalum sana, lakini ni rahisi sana. Katika programu, mara nyingi kuna wakati unahitaji kuongeza au kupunguza thamani kwa moja. Mara nyingi hii hutokea katika mzunguko. Operesheni ya kuongeza huongeza tofauti kwa moja.

Int x = 5;
x++;
// Hapa x tayari ni sawa na 6

Operesheni ya kupunguza inapunguza kutofautisha kwa moja.

Int x = 5;
x--;
// x ni sawa na 4

Operesheni za kuongeza na kupunguza zinaweza kuwa chapisho na kiambishi awali:

Int x = 5;
int y = 0;
y = x++;

Katika mstari wa mwisho wa msimbo, thamani ya x inapewa kwanza y, ambayo ni thamani ya 5, na kisha tu variable x inaongezwa na moja. Inageuka kuwa:

Nyongeza ya kiambishi awali ina fomu:

Int x = 3;
int y = 0;
y = ++x;

Na katika kesi hii, kwanza mabadiliko ya x huongezeka kwa moja, na kisha inapeana thamani iliyoongezeka tayari kwa y.

Waendeshaji uhusiano

Waendeshaji uhusiano hukuruhusu kujaribu ikiwa pande zote za usemi ni sawa. Kuna opereta wa usawa "==", waendeshaji chini ya "<» и больше «>", chini au sawa"<=» и больше или равно «>=”, na vile vile mwendeshaji wa kukanusha "!=".
9 == 10;

Usemi huu sio kweli, tisa hailingani na kumi, kwa hivyo thamani ya usemi huu ni ya uwongo.

Hapa, kinyume chake, mwendeshaji wa kukanusha anaonyesha usawa wa usemi, na thamani itakuwa kweli. Waendeshaji wakubwa kuliko, chini ya, kubwa kuliko au sawa na, na chini ya au sawa na ni sawa na waendeshaji sambamba kutoka hisabati.

Waendeshaji wa mantiki

Kuna waendeshaji wawili wenye mantiki. Opereta ya "AND", inayoashiriwa na alama "&&" na opereta "OR", inayoashiriwa na mikwaju miwili ya mbele "||". Kwa mfano, kuna usemi:

A*B && B*C;

Ikiwa tu sehemu zote mbili za usemi ni za kweli, thamani ya usemi huo inachukuliwa kuwa kweli. Ikiwa moja ya sehemu ni ya uwongo, basi thamani ya usemi mzima itakuwa ya uwongo.
Tofauti na opereta "&&", kuna opereta "||", ambayo sio bila sababu inayoitwa "AU".

A*B || B*C;

Ikiwa sehemu yoyote ya usemi ni kweli, basi usemi wote ni kweli. Waendeshaji wote wawili wanaweza kuunganishwa katika usemi mmoja, kwa mfano:

A*B || B*C && C*D || B*A;

Kwa msaada wa usemi huu, nimekuongoza, inaonekana kwangu, kwenye ugumu, sivyo? Ukweli ni kwamba katika Java, kama katika hisabati, kuna kipaumbele au kinachojulikana uongozi wa waendeshaji, kwa msaada wa ambayo imedhamiriwa ni nani kati ya waendeshaji ni muhimu zaidi, na, kwa hiyo, inaangaliwa kwanza. Wacha tufikirie kutumia orodha kipaumbele cha waendeshaji wote wa lugha ya Java:

, ., (),
!, ~, ++, – –, + (isiyo ya kawaida), – (isiyo ya kawaida), mpya,
*, /, %,
+, –,
<<, >>, >>>,
<, <=, >, >=,
= =, !=,
&, ^, |,
&&,
||,
?:,
=, +=, –=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.

Ushirikiano wa waendeshaji katika orodha hufuata kutoka kushoto kwenda kulia na kutoka juu hadi chini. Hiyo ni, kila kitu kilicho upande wa kushoto na juu ni wa juu kwa cheo na muhimu zaidi.

Java - lugha kutoka kwa mifumo ndogo ya jua. Hapo awali ilitengenezwa kama lugha ya kutayarisha vifaa vya kielektroniki, lakini baadaye ilianza kutumika kwa kuandika programu za programu za seva. Programu za Java ni jukwaa la msalaba, yaani, zinaweza kukimbia kwenye mfumo wowote wa uendeshaji.

Misingi ya Kuandaa Java

Java, kama lugha inayoelekezwa kwa kitu, hufuata kanuni za msingi za OOP:

  • urithi;
  • polymorphism;
  • encapsulation.

Katikati ya Java, kama katika OYA zingine, kuna kitu na darasa na wajenzi na mali. Ni bora kuanza kujifunza lugha ya programu ya Java sio kutoka kwa rasilimali rasmi, lakini kutoka kwa miongozo ya Kompyuta. Miongozo kama hii inaelezea uwezo kwa undani na kutoa mifano ya kanuni. Vitabu kama vile "Lugha ya Kuandaa Java kwa Wanaoanza" hufafanua kwa kina kanuni na vipengele vya msingi vya lugha iliyotajwa.

Upekee

Nambari ya lugha ya programu ya Java inatafsiriwa kwa bytecode na kisha kutekelezwa kwenye JVM. Ugeuzaji hadi bytecode unafanywa katika Javac, Jikes, Espresso, GCJ. Kuna watunzi ambao hutafsiri lugha ya C hadi Java bytecode. Kwa hivyo, programu ya C inaweza kufanya kazi kwenye jukwaa lolote.

Syntax ya Java ina sifa zifuatazo:

  1. Majina ya darasa lazima yaanze na herufi kubwa. Ikiwa jina lina maneno kadhaa, basi la pili lazima lianze kwa hali ya juu.
  2. Ikiwa maneno kadhaa hutumiwa kuunda njia, basi ya pili lazima ianze na herufi kubwa.
  3. Usindikaji huanza na njia kuu () - ni sehemu ya kila programu.

Aina

Lugha ya programu ya Java ina aina 8 za zamani. Zinawasilishwa hapa chini.

  • Boolean ni aina ya kimantiki ambayo inakubali tu maadili mawili, kweli na uongo.
  • Byte ndio aina ndogo kabisa ya nambari kamili, inayopima baiti 1. Inatumika wakati wa kufanya kazi na faili au data mbichi ya binary. Ina anuwai kutoka -128 hadi 127.
  • Short ina masafa kutoka -32768 hadi 32767 na hutumika kuwakilisha nambari. Ukubwa wa vigezo vya aina hii ni 2 byte.
  • Int pia inasimama kwa nambari, lakini saizi yake ni ka 4. Mara nyingi hutumiwa kufanya kazi na data kamili, na byte na fupi wakati mwingine hupandishwa cheo hadi int.
  • Muda mrefu hutumiwa kwa nambari kubwa. Thamani zinazowezekana zinaanzia -9223372036854775808 hadi 9223372036854775807.
  • Kuelea na mbili hutumiwa kuashiria maadili ya sehemu. Tofauti yao ni kwamba kuelea ni rahisi wakati usahihi wa juu katika sehemu ya sehemu ya nambari hauhitajiki.
  • Huonyesha herufi zote mara mbili baada ya kitenganishi cha ".", huku kuelea kunaonyesha zile za kwanza pekee.
  • Kamba ni aina ya primitive inayotumika sana kufafanua mifuatano.

Madarasa na vitu

Madarasa na vitu vina jukumu muhimu katika Kujifunza Lugha ya Kuandaa Java kwa Wanaoanza.

Darasa linafafanua kiolezo cha kitu; lazima iwe na sifa na njia. Ili kuiunda, tumia neno kuu la Hatari. Ikiwa imeundwa katika faili tofauti, basi jina la darasa na faili lazima iwe sawa. Jina lenyewe lina sehemu mbili: jina na ugani.Java.

Katika Java, unaweza kuunda subclass ambayo itarithi njia za mzazi. Neno kupanua hutumiwa kwa hili:

  • darasa_jina la darasa linapanua superclass_name ();

Mjenzi ni sehemu ya darasa lolote, hata ikiwa haijabainishwa wazi. Katika kesi hii, mkusanyaji huunda kwa kujitegemea:

  • Darasa la umma ( Darasa la umma())( ) Darasa la umma (Jina la kamba)( ))

Jina la mjenzi ni sawa na jina la darasa; kwa msingi, ina parameta moja tu:

  • Puppy ya umma (Jina la kamba)

Kitu kimeundwa kutoka kwa darasa kwa kutumia new() operator:

  • Pointi p = Pointi mpya()

Inapokea mbinu na mali zote za darasa, kwa msaada wa kuingiliana na vitu vingine. Kitu kimoja kinaweza kutumika mara kadhaa chini ya vigezo tofauti.

    Pointi p = Pointi mpya()

    darasa la pointi mbili (

    utupu tuli wa umma (String args) (

    Pointi p1 = Pointi mpya ();

    Pointi p2 = Pointi mpya ();

    Vigezo vya kitu na vitu ni vyombo tofauti kabisa. Vigezo vya vitu ni marejeleo. Wanaweza kuashiria tofauti yoyote ya aina isiyo ya primitive. Tofauti na C ++, ubadilishaji wa aina zao umewekwa madhubuti.

    Mashamba na Mbinu

    Sehemu ni vigeu vyote vinavyohusishwa na darasa au kitu. Kwa chaguo-msingi ni za kawaida na haziwezi kutumika katika madarasa mengine. Ili kufikia sehemu, tumia opereta ".":

    • jina la darasa.kigeu

    Unaweza kufafanua sehemu tuli kwa kutumia neno kuu tuli. Sehemu kama hizo ndio njia pekee ya kuhifadhi anuwai za ulimwengu. Hii ni kutokana na ukweli kwamba Java haina vigezo vya kimataifa.

    Imetekeleza uwezo wa kuagiza viambajengo ili kupata ufikiaji kutoka kwa vifurushi vingine:

    • ingiza jina la darasa tuli;

    Mbinu ni utaratibu mdogo wa madarasa ambayo imetangazwa. Imefafanuliwa kwa kiwango sawa na vigezo. Imebainishwa kama chaguo za kukokotoa na inaweza kuwa ya aina yoyote, ikijumuisha utupu:

    • Pointi ya darasa (int x, y;

      utupu init(int a, int b) (

    Katika mfano hapo juu, darasa la Uhakika lina nambari x na y, njia ya init(). Mbinu, kama vile vigeu, zinapatikana kwa kutumia "." mwendeshaji:

    • Point.init();

    Mali ya init hairudishi chochote, kwa hivyo ni ya utupu wa aina.

    Vigezo

    Katika somo la lugha ya programu ya Java, vigezo vinachukua nafasi maalum. Vigezo vyote vina aina maalum, huamua eneo linalohitajika kwa kuhifadhi maadili, anuwai ya maadili iwezekanavyo, na orodha ya shughuli. Kabla ya maadili kubadilishwa, vigeu vinatangazwa.

    Vigezo kadhaa vinaweza kutangazwa kwa wakati mmoja. koma hutumika kuorodhesha:

    • int a, b, c;

    Uanzishaji hutokea baada au wakati wa tamko:

    int a = 10, b = 10;

    Kuna aina kadhaa:

    • vigezo vya ndani (ndani);
    • vigezo vya mfano
    • vigezo tuli (tuli).

    Vigezo vya ndani vinatangazwa kwa njia na wajenzi; huundwa wakati za mwisho zinaendeshwa na kuharibiwa baada ya kukamilika. Kwao, ni marufuku kutaja marekebisho ya ufikiaji na kudhibiti kiwango cha upatikanaji. Hazionekani nje ya kizuizi kilichotangazwa. Katika Java, vigezo havina thamani ya awali, hivyo inahitajika kupewa kabla ya matumizi ya kwanza.

    Vigezo vya matukio lazima vitangaze ndani ya darasa. Zinatumika kama njia, lakini zinaweza kupatikana tu baada ya kitu kuundwa. Tofauti huharibiwa wakati kitu kinaharibiwa. Vigezo vya mifano, tofauti na vya kawaida, vina maadili chaguo-msingi:

    • nambari - 0;
    • mantiki - uongo;
    • viungo ni null.

    Vigezo vya tuli huitwa vigezo vya darasa. Majina yao huanza na herufi kubwa na hubainishwa na kirekebishaji tuli. Zinatumika kama viunga; ipasavyo, kiashiria kimoja kutoka kwenye orodha kinaongezwa kwao:

    • mwisho;
    • Privat;
    • umma

    Zinazinduliwa mwanzoni mwa programu na kuharibiwa baada ya kusimamishwa kwa utekelezaji. Kama vile anuwai za mfano, zina viwango vya kawaida ambavyo vimepewa vijiti tupu. Nambari zina thamani ya 0, vigeu vya boolean vina thamani ya uwongo, na marejeleo ya vipengee hapo awali hayana maana. Vigezo vya tuli vinaitwa kama ifuatavyo:

    • ClassName.VariableName.

    Mkusanyaji taka

    Katika mafunzo "Lugha ya Programu ya Java kwa Kompyuta", sehemu ya ukusanyaji wa takataka moja kwa moja ni ya kuvutia zaidi.

    Katika Java, tofauti na lugha ya C, haiwezekani kuondoa kitu kutoka kwa kumbukumbu. Kwa kusudi hili, njia ya kuondolewa kwa moja kwa moja imetekelezwa - mtozaji wa takataka. Kwa ufutaji wa kitamaduni kupitia null, marejeleo tu ya kitu huondolewa, na kitu chenyewe kinafutwa. Kuna njia za kulazimisha ukusanyaji wa takataka, ingawa hazipendekezi kutumika katika kazi ya kawaida.

    Moduli ya kufuta kiotomatiki vitu visivyotumika hufanya kazi chinichini na inazinduliwa wakati programu haifanyi kazi. Ili kufuta vitu kutoka kwa kumbukumbu, programu inacha; baada ya kufungia kumbukumbu, operesheni iliyoingiliwa inaanza tena.

    Virekebishaji

    Kuna aina tofauti za kurekebisha. Mbali na zile zinazoamua njia ya ufikiaji, kuna viboreshaji vya njia, anuwai na madarasa. Mbinu zilizotangazwa kuwa za faragha zinapatikana tu katika darasa lililotangazwa. Vigezo vile haviwezi kutumika katika madarasa na kazi nyingine. Umma huruhusu ufikiaji wa darasa lolote. Ikiwa unahitaji kupata darasa la Umma kutoka kwa kifurushi kingine, lazima kwanza uagize.

    Kirekebishaji kilicholindwa ni sawa na umma - hufungua ufikiaji wa nyanja za darasa. Katika visa vyote viwili, vigezo vinaweza kutumika katika madarasa mengine. Lakini kirekebishaji cha umma kinapatikana kwa kila mtu kabisa, na kirekebishaji kilicholindwa kinapatikana tu kwa madarasa ya kurithi.

    Kirekebishaji kinachotumika wakati wa kuunda njia ni tuli. Hii inamaanisha kuwa njia iliyoundwa inapatikana bila kujali mifano ya darasa. Kirekebishaji cha Mwisho hakidhibiti ufikiaji, lakini kinaonyesha kutowezekana kwa upotoshaji zaidi wa maadili ya kitu. Inakataza kubadilisha kipengele ambacho kimeainishwa.

    Mwisho kwa uga hufanya kuwa vigumu kubadilisha thamani ya kwanza ya kutofautisha:

      mthod tuli ya utupu ya umma (String args) (

      mwisho int Jina = 1;

      int Name = 2;// itatupa kosa

    Vigezo vilivyo na kirekebishaji cha mwisho ni vibadilishi. Kwa kawaida huandikwa kwa herufi kubwa pekee. CamelStyle na njia zingine hazifanyi kazi.

    Mwisho wa njia unaonyesha marufuku ya kubadilisha njia katika darasa la kurithi:

      utupu wa mwisho myMethod() (

      System.out.printIn("Hujambo ulimwengu");

    Mwisho kwa madarasa inamaanisha kuwa huwezi kuunda vizazi vya darasa:

      darasa la mwisho la umma (

    Muhtasari - kirekebishaji cha kuunda madarasa ya kufikirika. Darasa lolote la kufikirika na mbinu za kufikirika zimekusudiwa kupanuliwa zaidi katika madarasa na vizuizi vingine. Kirekebishaji muda mfupi huambia mashine ya kawaida isichakate utofauti uliopeanwa. Katika kesi hii, haitahifadhiwa tu. Kwa mfano, muda mfupi int Name = 100 haitahifadhiwa, lakini int b itahifadhiwa.

    Majukwaa na matoleo

    Familia zilizopo za lugha ya programu ya Java:

    • Toleo la Kawaida.
    • Toleo la Biashara.
    • Toleo ndogo.
    • Kadi.

    1. SE ndio kuu, inayotumika sana kuunda programu maalum kwa matumizi ya mtu binafsi.
    2. EE ni seti ya vipimo vya ukuzaji wa programu za biashara. Ina vipengele vingi kuliko SE, kwa hivyo hutumiwa kwa kiwango cha kibiashara katika biashara kubwa na za kati.
    3. ME - iliyoundwa kwa ajili ya vifaa na uwezo mdogo na kumbukumbu, kwa kawaida huwa na ukubwa mdogo wa kuonyesha. Vifaa vile ni smartphones na PDAs, wapokeaji wa televisheni ya digital.
    4. Kadi - iliyoundwa kwa ajili ya vifaa vilivyo na rasilimali chache za kompyuta, kama vile kadi mahiri, SIM kadi, ATM. Kwa madhumuni haya, bytecode, mahitaji ya jukwaa, na vipengele vya maktaba vilibadilishwa.

    Maombi

    Programu zilizoandikwa katika lugha ya programu ya Java huwa polepole na kuchukua RAM zaidi. Uchambuzi wa kulinganisha wa lugha za Java na C ulionyesha kuwa C ina tija zaidi. Baada ya mabadiliko mengi na uboreshaji wa mashine ya mtandaoni ya Java, imeboresha utendaji wake.

    Inatumika kikamilifu kwa programu za Android. Mpango huu unajumuishwa katika bytecode isiyo ya kawaida na kutekelezwa kwenye mashine pepe ya ART. Android Studio inatumika kutayarisha. IDE hii kutoka Google ndiyo rasmi kwa ajili ya ukuzaji wa Android.

    Microsoft imetengeneza utekelezaji wake wa mashine ya Java virtual MSJVM. Ilikuwa na tofauti ambazo zilivunja dhana ya msingi ya jukwaa la msalaba - hapakuwa na msaada kwa baadhi ya teknolojia na mbinu, kulikuwa na upanuzi usio wa kawaida ambao ulifanya kazi tu kwenye jukwaa la Windows. Microsoft ilitoa lugha ya J#, syntax na operesheni ya jumla ambayo ni sawa na Java. Haikuendana na vipimo rasmi na hatimaye iliondolewa kutoka kwa Zana ya kawaida ya Microsoft Visual Studio Developer Toolkit.

    Lugha ya programu ya Java na mazingira

    Utengenezaji wa programu unafanywa katika IDE zifuatazo:

    1. NetBeans IDE.
    2. IDE ya kupatwa kwa jua.
    3. WAZO la IntelliJ.
    4. JDeveloper.
    5. Java kwa iOS.
    6. Geany.

    JDK inasambazwa na Oracle kama kifaa cha ukuzaji cha Java. Inajumuisha mkusanyaji, maktaba za kawaida, huduma na mfumo wa utendaji. Mazingira ya kisasa ya maendeleo yaliyojumuishwa yanategemea JDK.

    Ni rahisi kuandika msimbo katika lugha ya programu ya Java katika Netbeans na Eclipse IDE. Hizi ni mazingira ya maendeleo jumuishi ya bure, yanafaa kwa majukwaa yote ya Java. Pia hutumika kwa programu katika Python, PHP, JavaScript, C++.

    IntelliJ IDE kutoka Jetbrains inasambazwa katika matoleo mawili: ya bure na ya kibiashara. Inaauni msimbo wa uandishi katika lugha nyingi za programu; kuna programu-jalizi za wahusika wengine kutoka kwa wasanidi programu ambao hutekeleza lugha nyingi zaidi.

    JDeveloper ni maendeleo mengine kutoka Oracle. Imeandikwa kabisa katika Java, hivyo inafanya kazi kwenye mifumo yote ya uendeshaji.

Kabla ya kuendelea na mafunzo, wacha tuanze na utangulizi wa programu ya java, wacha tujue ni aina gani ya lugha ya programu. Historia kidogo. Lugha ya Java ilitengenezwa na Sun Microsystems, iliyoundwa na James Gosling, na iliyotolewa mwaka wa 1995 kama sehemu ya msingi ya Jukwaa la Java la Sun Microsystems (Java 1.0).

Kufikia 2017, toleo la hivi karibuni la Toleo la Kawaida la Java ni 8 (J2SE). Pamoja na maendeleo ya Java, na umaarufu wake ulioenea, usanidi kadhaa umejengwa kwa aina tofauti za majukwaa. Kwa mfano: J2EE - maombi ya biashara, J2ME - kwa programu za rununu.

Mifumo midogo ya jua ilibadilisha jina la toleo la awali la J2 na kuanzisha mpya: Java SE, Java EE na Java ME. Utangulizi wa programu ya Java ya matoleo mbalimbali ulithibitisha kauli mbiu maarufu ya kampuni "".

Historia ya uundaji wa lugha ya Java

Historia ya lugha ya Java huanza mnamo Juni 1991, wakati James Gosling aliunda mradi wa matumizi katika moja ya miradi yake mingi ya kuweka juu. Ulimi uliokua nje ya ofisi ya Gosling kama mti wa mwaloni Mwaloni- jina la asili la Java hadi 1995, baada ya hapo historia ya Java iliendelea chini ya jina Kijani, na baadaye ilibadilishwa jina kama Java.

Lakini tarehe rasmi ya kuundwa kwa lugha ya Java inachukuliwa kuwa Mei 23, 1995, baada ya Sun iliyotolewa utekelezaji wa kwanza wa Java 1.0. Alihakikisha Andika mara moja, kimbia kila mahali", kutoa gharama ya chini kwenye majukwaa maarufu.

Mnamo Novemba 13, 2006, Sun ilitoa sehemu kubwa yake kama programu huria na huria chini ya masharti ya GNU General Public License (GPL).

Baada ya Mei 8, 2007, hatima ya Java iligeuka tofauti. Kampuni ilikamilisha mchakato huo, kwa kuhakikisha kuwa msimbo wa chanzo ulikuwa bila malipo na chanzo huria, isipokuwa sehemu ndogo ya msimbo ambayo kampuni haikuwa na hakimiliki.

Faida za Java kama Lugha ya Kuratibu

Inayolenga kitu: Katika Java, kila kitu ni kitu. Nyongeza inaweza kupanuliwa kwa urahisi kwani inategemea mfano wa kitu.

Jukwaa la kujitegemea: Tofauti na lugha nyingine nyingi, ikiwa ni pamoja na C na C++, Java, ilipoundwa, haikuundwa katika jukwaa maalum la mashine, lakini katika bytecode inayojitegemea ya jukwaa. Bytecode hii inasambazwa kwenye Mtandao na kufasiriwa na Java Virtual Machine (JVM) ambayo inaendeshwa kwa sasa.

Rahisi: Michakato ya kujifunza na utangulizi wa lugha ya programu ya Java huwekwa rahisi. Ikiwa unaelewa dhana za msingi za programu inayolenga kitu, basi itakuwa rahisi kwako kujifunza.

Salama: Mbinu za uthibitishaji zinatokana na usimbaji fiche wa ufunguo wa umma.

Usanifu wa neutral: Mkusanyaji hutengeneza vitu vya umbizo la faili lisilo na usanifu, ambayo hufanya msimbo uliokusanywa utekelezwe kwa vichakataji vingi vinavyoendesha mfumo wa Java Runtime.

Inabebeka: Usanifu usio na upande wowote na usio na vipengele vya utegemezi wa utekelezaji wa vipimo - yote haya hufanya Java kubebeka. Kikusanyaji katika Java kimeandikwa kwa ANSI C inayobebeka tu, ambayo ni sehemu ndogo ya POSIX.

Kudumu: Hufanya juhudi za kuondoa hitilafu katika hali mbalimbali, ikilenga hasa wakati wa kukusanya, kukagua makosa, na kukagua muda wa utekelezaji.

Imesomwa kwa wingi: Vipengele vingi vya thread, unaweza kuandika programu ambazo zinaweza kufanya kazi nyingi kwa wakati mmoja. Kuanzishwa kwa kipengele hiki cha muundo katika lugha ya Java huruhusu wasanidi programu kuunda programu zilizoboreshwa sana, zinazoingiliana.

Imefasiriwa: Java bytecode inatafsiriwa kwa kuruka kwenye maagizo ya mashine na haijahifadhiwa popote. Kufanya mchakato kuwa wa haraka na wa uchanganuzi zaidi kadiri ufungaji unavyotokea kama mchakato wa ziada wenye uzito mdogo kwa mchakato.

Utendaji wa juu: kuanzishwa kwa mkusanyiko wa Just-In-Time unaoruhusiwa kwa utendaji wa juu.

Kawaida: Imeundwa kwa ajili ya mazingira ya mtandao iliyosambazwa.

Nguvu: Utengenezaji wa programu ya Java unachukuliwa kuwa wenye nguvu zaidi kuliko C au C++ kwani umeundwa ili kukabiliana na mabadiliko ya hali. Programu zinaweza kutekeleza idadi kubwa ya habari wakati wa kuchakata ambayo inaweza kutumika kuthibitisha na kuidhinisha ufikiaji wa vitu wakati wa utekelezaji.

Baada ya utangulizi mfupi, muhtasari wa faida na historia ya Java, wacha tuanze mafunzo yetu.

Zana utahitaji

Ili kuendesha mifano iliyojadiliwa katika somo hili, unahitaji kompyuta ya Pentium 200 MHz yenye RAM isiyopungua MB 64 (RAM ya MB 128 inayopendekezwa).

Utahitaji pia programu ifuatayo:

  • Linux 7.1, Windows 95/98/2000/7/8 na ya juu zaidi au mfumo mwingine wa uendeshaji.
  • JDK 5 na zaidi.
  • Notepad au kihariri chochote cha maandishi.

Mafunzo yatatoa ujuzi muhimu ili kuunda GUI, mtandao na programu za wavuti.

Baada ya kujijulisha na sifa za historia ya kuonekana na faida za Java, umekamilisha somo katika kuanzisha lugha ya programu. Somo linalofuata litakuongoza kujifunza lugha na hati. Hukuelekeza jinsi ya kusakinisha na kuandaa mazingira kwa ajili ya ukuzaji wa programu.