Press "Enter" to skip to content

Java Operators

Usul foydalanish deb nomlanadi . ob’ektda yoki statik usulda, shuningdek, sinf nomida yozuv.

Java sintaksis – Java syntax

Ushbu maqola umumiy ro’yxatini o’z ichiga oladi ma’lumotnomalar, lekin bu asosan tasdiqlanmagan bo’lib qolmoqda, chunki unga mos keladigan etishmayapti satrda keltirilgan. Iltimos yordam bering yaxshilash tomonidan ushbu maqola tanishtirish aniqroq iqtiboslar. ( 2014 yil yanvar ) (Ushbu shablon xabarini qanday va qachon olib tashlashni bilib oling)

Qalin ko’k shriftda ta’kidlangan kalit so’zlar bilan Java kodining bir qismi

The sintaksis ning Java ga tegishli qoidalar to’plami Java dasturining qanday yozilishi va talqin qilinishini aniqlash.

Sintaksis asosan olingan C va C ++. C ++ dan farqli o’laroq, Java-da global funktsiyalar yoki o’zgaruvchilar mavjud emas, lekin global o’zgaruvchilar deb hisoblanadigan ma’lumotlar a’zolari mavjud. Barcha kod tegishli sinflar va barcha qiymatlar ob’ektlar. Faqatgina istisno ibtidoiy turlari, ishlash sabablari bilan sinf misoli tomonidan ifodalanmagan (garchi avtomatik ravishda ob’ektlarga aylantirilishi mumkin va aksincha orqali avtookslash ). Kabi ba’zi xususiyatlar operatorning ortiqcha yuklanishi yoki imzosiz tamsayı tilni soddalashtirish va mumkin bo’lgan dasturiy xatolardan saqlanish uchun turlari chiqarib tashlanadi.

Java sintaksisi bosqichma-bosqich kengayib bordi JDK relizlar kabi imkoniyatlarni qo’llab-quvvatlaydi umumiy dasturlash va funktsional adabiyotlar (Java-da lambda ifodalari deb ataladi). 2017 yildan boshlab yangi JDK versiyasi yiliga ikki marta chiqarilib, har bir chiqarilishi tilga bosqichma-bosqich yaxshilanishlarni keltirib chiqarmoqda.

Mundarija

  • 1 Asoslari
    • 1.1 Identifikator
    • 1.2 Kalit so’zlar
    • 1.3 Literallar
    • 1.4 O’zgaruvchilar
    • 1.5 Kod bloklari
    • 1.6 Izohlar
    • 1.7 Umumjahon turlari
    • 2.1 asosiy usul
    • 2.2 Paketlar
    • 2.3 Import deklaratsiyasi
      • 2.3.1 Import deklaratsiyasini kiriting
      • 2.3.2 Statik import deklaratsiyasi
      • 4.1 Shartli bayonotlar
        • 4.1.1 if bayonoti
        • 4.1.2 switch bayonoti
          • 4.1.2.1 iboralarni almashtirish
          • 4.2.1 while loop
          • 4.2.2 do . while loop
          • 4.2.3 pastadir uchun
          • 4.2.4 Loop uchun yaxshilangan
          • 4.3.1 Yorliqlar
          • 4.3.2 tanaffus bayonoti
          • 4.3.3 bayonotni davom ettirish
          • 4.3.4 qaytarish bayonoti
          • 4.4.1 nihoyat sinab ko’ring
          • 4.4.2 resurslar bilan sinab ko’ring
          • 4.4.3 bayonotni tashlash
          • 5.1 Boks va quti
          • 6.1 Massivlar
            • 6.1.1 Boshlovchi
            • 6.1.2 Ko’p o’lchovli massivlar
            • 6.2.1 Deklaratsiya
            • 6.2.2 Mavzu
            • 6.2.3 A’zolarga kirish
            • 6.2.4 Modifikatorlar
              • 6.2.4.1 Kirish modifikatorlari
              • 6.2.6.1 Modifikatorlar
              • 6.2.6.2 Varargs
              • 6.2.7.1 Modifikatorlar
              • 6.2.8.1 Ortiqcha usullar
              • 6.2.8.2 Mavhum darslar
              • 6.3.1 Interfeysni amalga oshirish
              • 6.3.2 Funktsional interfeyslar va lambda ifodalari
              • 6.3.3 Uslubiy qo’llanmalar
              • 6.3.4 Meros olish
              • 6.3.5 Standart usullar
              • 6.3.6 Statik usullar
              • 6.3.7 Xususiy usullar
              • 6.3.8 Izohlar
                • 6.3.8.1 Izoh turlari
                • 6.3.8.2 Izohlardan foydalanish
                • 7.1 Umumiy darslar
                • 7.2 Umumiy usullar va konstruktorlar
                • 7.3 Umumiy interfeyslar

                Asoslari

                Identifikator

                An identifikator elementidagi element nomi kod. Muayyan standart mavjud nomlash konvensiyalari elementlar uchun nomlarni tanlashda amal qilish. Java-da identifikatorlar mavjud harflar katta-kichikligiga sezgir.

                Identifikator quyidagilarni o’z ichiga olishi mumkin:

                • Harf bo’lgan har qanday Unicode belgisi (shu kabi raqamli harflarni o’z ichiga oladi) Rim raqamlari ) yoki raqam.
                • Valyuta belgisi (masalan, ¥).
                • Tinish belgilarini bog’lash (masalan _ ).

                Identifikator quyidagilarni qila olmaydi:

                • Raqam bilan boshlang.
                • Zaxira qilingan kalit so’zga teng bo’ling, to’g’ridan-to’g’ri yoki mantiqiy ma’nosiz.

                Kalit so’zlar

                Asosiy maqola: Java kalit so’zlari

                mavhum davom eting uchun yangi almashtirish
                tasdiqlash sukut bo’yicha bordi paket sinxronlashtirildi
                mantiqiy qil agar xususiy bu
                tanaffus ikki baravar asboblar himoyalangan otish
                bayt boshqa Import jamoat uloqtiradi
                ish enum instanceof qaytish vaqtinchalik
                ushlamoq uzaytiradi int qisqa harakat qilib ko’ring
                char final interfeys statik var
                sinf nihoyat uzoq qat’iyfp bekor
                konst suzmoq tug’ma super o’zgaruvchan
                esa

                Literallar

                Butun sonlar
                ikkilik (Java SE 7 da kiritilgan) 0b11110101 (0b keyin ikkilik raqam)
                sakkizli 0365 (0 keyin sakkizinchi raqam)
                o’n oltinchi 0xF5 (0x keyin o’n oltinchi raqam)
                o‘nli kasr 245 (o‘nli raqam)
                Suzuvchi nuqta qiymatlar
                suzmoq 23.5F, .5f, 1.72E3F (ixtiyoriy ko’rsatkich ko’rsatkichi bilan o’nlik kasr, undan keyin) F)
                0x.5FP0F, 0x.5P-6f (0x keyin majburiy ko’rsatkich ko’rsatkichi va qo’shimchasi bo’lgan o’n oltinchi kasr F)
                ikki baravar 23.5D, .5, 1.72E3D (ixtiyoriy ko’rsatkich ko’rsatkichi bilan kasr kasr, keyin ixtiyoriy D.)
                0x.5FP0, 0x.5P-6D (0x keyin majburiy ko’rsatkich ko’rsatkichi va ixtiyoriy qo’shimchasi bo’lgan o’n oltinchi kasr D.)
                Belgilar literallari
                char "a", "Z", " u0231" (belgi yoki belgidan qochish, bitta tirnoq ichiga olingan)
                Mantiqiy adabiyotlar
                mantiqiy to'g'ri, yolg'on
                null so’zma-so’z
                nol ma’lumot bekor
                String litals
                Ip "Salom Dunyo" (ikkita tirnoq ichiga kiritilgan belgilar va belgilar qochishining ketma-ketligi)
                Belgilar simlardan qochib qutulishadi
                Unicode belgi u3876 ( u keyin U + FFFF gacha bo’lgan o’n oltilik unikodli kod)
                Oktal qochish \352 (sakkizinchi raqam 377 dan oshmaydi, oldin teskari chiziq)
                Qator tasmasi n
                Vagonni qaytarish r
                Shakli ozuqa f
                Orqa chiziq \\
                Bitta taklif \'
                Ikkita taklif \"
                Yorliq t
                Orqaga qaytarish b

                Butun sonli yozuvlar int sukut bo’yicha yozing, agar bo’lmasa uzoq turi qo’shimchalar bilan belgilanadi L yoki l so’zma-so’z qo’shimchasi, masalan. 367L . Java SE 7 dan boshlab, o’qish qobiliyatini oshirish uchun raqamlarning raqamlari orasidagi pastki chiziqlarni kiritish mumkin; masalan, raqam 145608987 sifatida yozilishi mumkin 145_608_987.

                O’zgaruvchilar

                O’zgaruvchilar qiymatlar bilan bog’langan identifikatorlardir. Ular o’zgaruvchining turi va nomini yozish orqali e’lon qilinadi va ixtiyoriy ravishda qiymatni belgilash orqali bir xil bayonotda boshlanadi.

                int hisoblash; // "count" deb nomlangan boshlang'ich o'zgaruvchini e'lon qilish, "int" turihisoblash = 35; // o'zgaruvchini ishga tushirishint hisoblash = 35; // Bir vaqtning o'zida o'zgaruvchini e'lon qilish va boshlash

                Xuddi shu turdagi bir nechta o’zgaruvchini vergul yordamida ajratuvchi sifatida e’lon qilish va bitta bayonotda boshlash mumkin.

                int a, b; // Bir xil turdagi bir nechta o'zgaruvchilarni e'lon qilishint a = 2, b = 3; // Bir xil turdagi bir nechta o'zgaruvchilarni e'lon qilish va boshlash

                Java 10 dan boshlab avtomatik ravishda o’zgaruvchilar uchun turlar yordamida avtomatik ravishda xulosa chiqarish mumkin bo’ldi var .

                // oqim FileOutputStream turiga, uning boshlang'ichidan kelib chiqqan holda ega bo'ladivar oqim = yangi FileOutputStream("file.txt");// aniq tipdagi ekvivalent deklaratsiyaFileOutputStream oqim = yangi FileOutputStream("file.txt");

                Kod bloklari

                Ajratuvchilar va > kod bloki va yangi ko'lamini bildiring. Sinf a'zolari va metod tanasi bu kontekst ichida turli xil sharoitlarda nima yashashi mumkinligiga misoldir.

                Metod korpuslari ichida braxetlardan yangi ko'lamlarni yaratish uchun foydalanish mumkin:

                bekor biror narsa qilmoq()  int a;  int b; a = 1; > a = 2; b = 3; // noqonuniy, chunki b o'zgaruvchisi ichki doirada e'lon qilingan ..>

                Izohlar

                Java-da uch xil sharh mavjud: an'anaviy sharhlar, satr oxiridagi sharhlar va hujjat sharhlari.

                An'anaviy izohlar, shuningdek blokli sharhlar deb nomlanuvchi, boshlanadi /* va bilan tugaydi */ , ular bir nechta chiziqlar bo'ylab tarqalishi mumkin. Ushbu turdagi sharh C va C ++ dan olingan.

                / * Bu ko'p satrli sharh.U bir nechta qatorni egallashi mumkin. * /

                Qator oxiridagi sharhlar bilan boshlanadi // va joriy chiziqning oxirigacha uzaytiring. Ushbu sharh turi C ++ va zamonaviy C da mavjud.

                // Bu satr oxiridagi sharh

                Manba fayllaridagi hujjatlar sharhlari Javadoc hujjatlarni yaratish vositasi. Izohning bu turi an'anaviy sharhlar bilan bir xil, faqat u bilan boshlanadi /** va Javadoc vositasi tomonidan belgilangan konventsiyalarga amal qiladi. Texnik jihatdan ushbu sharhlar an'anaviy sharhlarning o'ziga xos turidir va ular til spetsifikatsiyasida aniq belgilanmagan.

                /** * Bu hujjat sharhi. * * @ muallif Jon Dou */

                Umumjahon turlari

                Paketdagi java.lang sinflari har qanday dasturga to'g'ridan-to'g'ri import qilinadi, chunki hech qanday aniq import qilingan turlar bir xil nomlarga ega emas. Muhimlariga quyidagilar kiradi:

                java.lang.Object Java-lar yuqori turi. Ota-ona sinfini e'lon qilmaydigan barcha sinflarning superklassi. Barcha qadriyatlar ushbu turga aylantirilishi mumkin, ammo ibtidoiy qadriyatlar uchun bu kerak avtookslash. java.lang.String Java-ning asosiy mag'lubiyat turi. O'zgarmas. Ba'zi usullar har birini davolashadi UTF-16 kod birligi "belgi" sifatida, lekin an ga aylantirish usullari int [] bu samarali UTF-32 ham mavjud. java.lang. Throwable bo'lishi mumkin bo'lgan hamma narsaning supertipi tashlangan yoki ushlangan Java bilan otish va ushlamoq bayonotlar.

                Dastur tarkibi

                Java dasturlari sinflar to'plamidan iborat. Sinflar paketlarda mavjud, ammo boshqa sinflar ichiga joylashtirilishi mumkin.

                asosiy usul

                Har bir Java dasturida kirish nuqtasi bo'lishi kerak. Bu grafik interfeys dasturlari va konsol dasturlari uchun ham amal qiladi. Kirish nuqtasi asosiy usul. A bilan bir nechta sinf bo'lishi mumkin asosiy usuli, lekin asosiy sinf har doim tashqi tomondan belgilanadi (masalan, a manifest fayli ). Usul bo'lishi kerak statik va qatorlar qatori sifatida buyruq satridagi argumentlarni uzatadi. Aksincha C ++ yoki C #, u hech qachon qiymat qaytarmaydi va qaytishi kerak bekor .

                jamoat statik bekor asosiy(Ip[] kamon) >

                Paketlar

                Paketlar sinf nomining bir qismidir va ular nomlangan ob'ektlarni boshqalaridan guruhlash va / yoki ajratish uchun ishlatiladi. To'plamlarning yana bir maqsadi - kodga kirishni boshqarish modifikatorlari bilan birgalikda boshqarish. Masalan, java.io.InputStream sinf uchun to'liq malakali sinf nomi InputStream paketda joylashgan java.io .

                Faylning boshida paket bilan e'lon qilinadi paket deklaratsiya:

                paket myapplication.mylibrary;jamoat sinf MyClass >

                Bilan darslar jamoat modifikator bir xil nomdagi fayllarga joylashtirilishi kerak va java kengaytmasi va paket nomiga mos keladigan ichki papkalarga joylashtiring. Yuqoridagi sinf myapplication.mylibrary.MyClass quyidagi yo'lga ega bo'ladi: myapplication / mylibrary / MyClass.java .

                Import deklaratsiyasi

                Import deklaratsiyasini kiriting

                Importning deklaratsiyasi, nomlangan turga paketni o'z ichiga olgan to'liq ismga emas, balki oddiy ismga murojaat qilishga imkon beradi. Import deklaratsiyalari bo'lishi mumkin bitta turdagi import deklaratsiyalari yoki talab bo'yicha import deklaratsiyalari. Import deklaratsiyalari paket deklaratsiyasidan keyin kod faylining yuqori qismiga joylashtirilishi kerak.

                paket myPackage;Import java.util.Random; // bitta turdagi deklaratsiyajamoat sinf ImportTest  jamoat statik bekor asosiy(Ip[] kamon)  / * Quyidagi satr tengdir * java.util.Random random = new java.util.Random (); * Importsiz noto'g'ri bo'lar edi. */ Tasodifiy tasodifiy = yangi Tasodifiy(); >>

                Kodeksda talab bo'yicha import deklaratsiyalari ko'rsatilgan. "Tip import" paketning barcha turlarini import qiladi. "Statik import" paket a'zolarini import qiladi.

                Import java.util. *; / * Sinflarni import qilishning ushbu shakli barcha sinflarni tashkil qiladi to'plami nomi bilan mavjud bo'lgan java.util-ning o'rniga ishlatilishi mumkin oldingi misolda import deklaratsiyasi. * /Import java. *; / * Ushbu bayonot qonuniy, ammo hech narsa qilmaydi, chunki u erda to'g'ridan-to'g'ri paket java-da sinflar emas. Ularning barchasi paketlarda paket java ichida. Bu barcha mavjud sinflarni import qilmaydi. * /

                Statik import deklaratsiyasi

                Ushbu turdagi deklaratsiya shu vaqtdan beri mavjud J2SE 5.0. Statik import deklaratsiyalar boshqa sinf, interfeys, annotatsiya yoki enumda aniqlangan statik a'zolar uchun ruxsat beradi; sinf nomini ko'rsatmasdan:

                import statik java.lang.System.out; // 'out' - bu java.lang.System-dagi statik maydonjamoat sinf Salom Dunyo  jamoat statik bekor asosiy(Ip[] kamon)  / * Quyidagi satr quyidagilarga teng: System.out.println ("Salom dunyo!"); va import deklaratsiyasiz noto'g'ri bo'lgan bo'lar edi. * / chiqib.println("Salom Dunyo!"); >>

                Talab bo'yicha import deklaratsiyalari barcha turdagi maydonlarni import qilishga imkon beradi:

                import statik java.lang.System. *; / * Ushbu deklaratsiya shakli barchasini beradi java.lang.System sinfidagi maydonlar nomlari bilan mavjud va ularning o'rniga ishlatilishi mumkin oldingi misolda import deklaratsiyasining. * /

                Enum konstantalari statik import bilan ham ishlatilishi mumkin. Masalan, ushbu enum nomlangan paketda ekran :

                jamoat enum ColorName  QIZIL, Moviy, Yashil>;

                Enum konstantalarini olish uchun boshqa sinfda statik import deklaratsiyalaridan foydalanish mumkin:

                Import ekran.ColorName;import statik ekran.ColorName. *;jamoat sinf Nuqta  / * Quyidagi satr "ColorName foo = ColorName.RED" ga teng, va statik importsiz bu noto'g'ri bo'lar edi. * / ColorName foo = QIZIL; bekor siljish()  / * Quyidagi satr quyidagilarga teng: if (foo == ColorName.RED) foo = ColorName.BLUE; * / agar (foo == QIZIL) foo = Moviy; >>

                Operatorlar

                Java-dagi operatorlar o'xshashlariga o'xshaydi C ++. Biroq, yo'q o'chirish tufayli operator axlat yig'ish Java-da mexanizmlar mavjud va hech qanday operatsiyalar mavjud emas ko'rsatgichlar chunki Java ularni qo'llab-quvvatlamaydi. Yana bir farq shundaki, Java imzosiz o'ng almashtirish operatoriga ega ( >>> ), C ning o'ng siljish operatorining imzosi turga bog'liq. Java-da operatorlar bo'lishi mumkin emas haddan tashqari yuklangan.

                Afzallik Operator Tavsif Assotsiativlik
                1 () Boshqaruv usuli Chapdan o'ngga
                [] Massivga kirish
                . Sinf a'zolarini tanlash
                2 ++ -- Postfiks o'sishi va kamayishi [1]
                3 ++ -- Prefiks o'sishi va kamayishi O'ngdan chapga
                + - Unary plyus va minus
                ! ~ Mantiqiy YO'Q va bittadan EMAS
                (turi) val Gips turi
                yangi Sinf namunasi yoki qator yaratish
                4 * / % Ko'paytirish, bo'linish va modul (qoldiq) Chapdan o'ngga
                5 + - Qo'shish va ayirish
                + Iplarni birlashtirish
                6 > >>> Bittadan chap siljish, imzolangan o'ng siljish va imzosiz o'ng siljish
                7 < Aloqaviy "Kamroq" va "kamroq yoki teng"
                > >= O'zaro munosabat "kattaroq" va "kattaroq yoki teng"
                instanceof Turni taqqoslash
                8 == != "Teng" va "teng emas" munosabati
                9 & Bitli va mantiqiy VA
                10 ^ Bitsel va mantiqiy XOR (eksklyuziv yoki)
                11 | Bitwise va mantiqiy YOKI (shu jumladan yoki)
                12 && Mantiqiy shartli-VA
                13 || Mantiqiy shartli-OR
                14 v ? t : f Uchinchi shartli (qarang ?: ) O'ngdan chapga
                15 = Oddiy topshiriq
                += -= Jami va farqi bo'yicha topshiriq
                *= /= %= Mahsulot, miqdor va qoldiq bo'yicha topshiriq
                >= >>>= Belgilangan chap siljish, imzolangan o'ng siljish va imzosiz o'ng siljish orqali topshiriq
                &= ^= |= VA, XOR va OR bilan bittadan belgilash

                Boshqarish tuzilmalari

                Shartli bayonotlar

                agar bayonot

                agar bayonotlar Java-da C-ga o'xshash va bir xil sintaksisdan foydalaniladi:

                agar (men == 3) biror narsa qilmoq();

                agar bayonot ixtiyoriy bo'lishi mumkin boshqa blok, bu holda u if-then-else ifodasiga aylanadi:

                agar (men == 2)  biror narsa qilmoq();> boshqa  doSomethingElse();>

                C singari, else-if qurilishida hech qanday maxsus kalit so'zlar mavjud bo'lmasa, u alohida if-then-else iboralari ketma-ketligi sifatida shakllanadi:

                agar (men == 3)  biror narsa qilmoq();> boshqa agar (men == 2)  doSomethingElse();> boshqa  doSomethingDifferent();>

                Shuningdek, ?: operatori oddiy if ifodasi o'rnida ishlatilishi mumkin, masalan

                int a = 1;int b = 2;int minVal = (a  b) ? a : b;

                almashtirish bayonot

                Bayonotlarni almashtirish Java-dan foydalanishi mumkin bayt , qisqa , char va int (eslatma: yo'q uzoq ) ma'lumotlarning ibtidoiy turlari yoki ularga mos keladigan o'rash turlari. J2SE 5.0 dan boshlab foydalanish mumkin enum turlari. Java SE 7 dan boshlab, Strings-dan foydalanish mumkin. Boshqa mos yozuvlar turlarini ishlatib bo'lmaydi almashtirish bayonotlar.

                Mumkin bo'lgan qiymatlar yordamida ro'yxatlangan ish yorliqlar. Java-dagi ushbu yorliqlarda faqat doimiylar bo'lishi mumkin (shu qatorda enum konstantalari va mag'lubiyat doimiylari). Qavslar ichidagi ifodaga mos yorliqdan keyin ijro boshlanadi. Ixtiyoriy sukut bo'yicha yorliq mavjud bo'lishi mumkin, agar biron bir ish yorlig'i ushbu iboraga mos kelmasa, undan keyingi kod bajarilishini e'lon qiladi.

                Har bir yorliq uchun kod. Bilan tugaydi tanaffus kalit so'z. Ijro etishni keyingi yorliqqa o'tishiga olib keladigan sababni qoldirib qo'yish mumkin, ammo kompilyatsiya paytida odatda ogohlantirish beriladi.

                almashtirish (ch)  ish "A": biror narsa qilmoq(); // ch == 'A' bo'lsa tetiklenir tanaffus; ish "B": ish "C": doSomethingElse(); // ch == 'B' yoki ch == 'C' bo'lsa, tetiklenir. tanaffus; sukut bo'yicha: doSomethingDifferent(); // Boshqa har qanday holatda tetiklenir tanaffus;>
                almashtirish iboralar

                Java 14 dan boshlab yangi o'q sintaksisini ishlatadigan kalit iboralarini ishlatish mumkin bo'ldi:

                var natija = almashtirish (ch)  ish "A" -> Natija.ZO'R; ish "B", "C" -> Natija.Yaxshi; sukut bo'yicha -> otish yangi ThisIsNoGoodException();>;

                Shu bilan bir qatorda, xuddi shu narsani ifoda etish imkoniyati mavjud Yo'l bering bayonot, garchi o'q sintaksisiga ustunlik berish tavsiya etilsa, chunki u tasodifan tushib qolish muammosidan qochadi.

                var natija = almashtirish (ch)  ish "A": Yo'l bering Natija.ZO'R; ish "B": ish "C": Yo'l bering Natija.Yaxshi; sukut bo'yicha: otish yangi ThisIsNoGoodException();>;

                Takrorlash bayonotlari

                Takrorlash bayonotlari - berilgan shart to'g'ri deb baholanganda bir necha bor bajariladigan bayonotlar. Beri J2SE 5.0, Java bunday bayonotlarning to'rtta shakliga ega.

                esa pastadir

                In esa pastadir, test har bir takrorlashdan oldin amalga oshiriladi.

                esa (men  10)  biror narsa qilmoq();>

                qil . esa pastadir

                In qil . esa pastadir, test har bir takrorlashdan keyin amalga oshiriladi. Binobarin, kod har doim kamida bir marta bajariladi.

                // doSomething () kamida bir marta chaqiriladiqil  biror narsa qilmoq();> esa (men  10);

                uchun pastadir

                uchun Java-dagi tsikllarda boshlang'ich, shart va hisoblagich ifodasi mavjud. Ajratuvchi sifatida vergul yordamida bir xil turdagi bir nechta iboralarni kiritish mumkin (shart bundan mustasno). Biroq, C dan farqli o'laroq, vergul faqat ajratuvchi bo'lib, operator emas.

                uchun (int men = 0; men  10; men++)  biror narsa qilmoq();> // Ikki o'zgaruvchidan foydalangan holda yanada murakkab tsikluchun (int men = 0, j = 9; men  10; men++, j -= 3)  biror narsa qilmoq();>

                C singari, uchta ibora ham ixtiyoriydir. Quyidagi tsikl cheksiz:

                uchun (;;)  biror narsa qilmoq();>

                Rivojlangan uchun pastadir

                Rivojlangan uchun ko'chadan O'shandan beri mavjud J2SE 5.0. Ushbu turdagi tsiklda berilgan to'plamdagi har bir elementni qaytarish uchun massivlar va to'plamlar ustida o'rnatilgan takrorlanuvchilar qo'llaniladi. Kod bloki kontekstida har bir element qaytariladi va unga kirish mumkin. Blok bajarilgandan so'ng, element qolmaguncha keyingi element qaytariladi. Aksincha C #, bunday tsikl maxsus kalit so'zni o'z ichiga olmaydi, aksincha boshqa yozuv uslubidan foydalanadi.

                uchun (int men : intArray)  biror narsa qilmoq(men);>

                O'tish so'zlari

                Yorliqlar

                Yorliqlar tomonidan ishlatiladigan kodda ballar berilgan tanaffus va davom eting bayonotlar. Java-ga e'tibor bering bordi kalit so'zni kodning aniq nuqtalariga o'tish uchun ishlatish mumkin emas.

                boshlash:qandaydir usul();

                tanaffus bayonot

                The tanaffus bayonoti eng yaqin ko'chadan chiqib ketadi yoki almashtirish bayonot. Ijro etish, agar mavjud bo'lsa, bekor qilingan bayonotdan keyin bayonotda davom etadi.

                uchun (int men = 0; men  10; men++)  esa (to'g'ri)  tanaffus; > // Shu nuqtaga qadar to'xtaydi>

                Yorliqlar yordamida tashqi tsikldan chiqib ketish mumkin:

                tashqi:uchun (int men = 0; men  10; men++)  esa (to'g'ri)  tanaffus tashqi; >>// Shu nuqtaga qadar to'xtaydi

                davom eting bayonot

                The davom eting iborasi joriy boshqaruv operatorining amaldagi takrorlanishini to'xtatadi va keyingi takrorlashni boshlaydi. Quyidagi esa quyidagi koddagi tsikl qo'ng'iroq qilish orqali belgilarni o'qiydi getChar () , agar belgilar bo'shliq bo'lsa, pastadir tanasidagi gaplarni o'tkazib yuboring:

                int ch;esa (ch == getChar())  agar (ch == ' ')  davom eting; // while-loopning qolgan qismini o'tkazib yuboradi > // while-loopning qolgan qismi, agar ch == bo'lsa, erishib bo'lmaydi biror narsa qilmoq();>

                Yorliqlar davom eting bayonotlar va tanaffus bayonotlar:

                tashqi:uchun (Ip str : stringsArr)  char[] strChars = str.toCharArray(); uchun (char ch : strChars)  agar (ch == ' ')  / * Tashqi tsiklni davom ettiradi va keyingi string stringsArr * / dan olingan davom eting tashqi; > biror narsa qilmoq(ch); >>

                qaytish bayonot

                The qaytish iborasi usul bajarilishini tugatish va qiymatni qaytarish uchun ishlatiladi. Usul bilan qaytarilgan qiymat qaytish kalit so'z. Agar usul faqat biron narsani qaytarsa bekor , uni ishlatishi kerak qaytish ba'zi bir qiymatni qaytarish uchun bayonot.

                bekor biror narsa qilmoq(mantiqiy oqim yopiq)  // Agar streamClosed rost bo'lsa, ijro to'xtatiladi agar (oqim yopiq)  qaytish; > o'qingFromStream();>int calcSum(int a, int b)  int natija = a + b; qaytish natija;>

                qaytish iborasi darhol bajarilishini tugatadi, faqat bitta holat bundan mustasno: agar bayonot a ichida uchrasa harakat qilib ko'ring blok va u a bilan to'ldiriladi nihoyat , boshqarish nihoyat blokirovka qilish.

                bekor biror narsa qilmoq(mantiqiy oqim yopiq)  harakat qilib ko'ring  agar (oqim yopiq)  qaytish; > o'qingFromStream(); > nihoyat  / * Agar shunday bo'lsa ham oxirgi qo'ng'iroq qilinadi readFromStream () * / deb nomlanmagan freeResources(); >>

                Istisnolardan foydalanish bayonotlari

                nihoyat sinab ko'ring bayonotlar

                Istisnolar ichida boshqariladi harakat qilib ko'ring . ushlamoq bloklar.

                harakat qilib ko'ring  // Istisnolarni keltirib chiqarishi mumkin bo'lgan bayonotlar methodThrowingExceptions();> ushlamoq (Istisno sobiq)  // Istisno bu erda ushlangan va ko'rib chiqilgan reportException(sobiq);> nihoyat  // Bildirishnomalar har doim try / catch bloklaridan keyin bajariladi freeResources();>

                Ichidagi bayonotlar harakat qilib ko'ring blok bajariladi va agar ulardan biri istisno qilsa, blokning bajarilishi to'xtatiladi va istisno bilan ishlaydi ushlamoq blokirovka qilish. Bir nechta bo'lishi mumkin ushlamoq bloklar, bu holda tashlangan istisno turiga mos keladigan istisno o'zgaruvchisiga ega bo'lgan birinchi blok bajariladi.

                Java SE 7, shuningdek, yakka gaplardan tashqari, ko'p qavatli gaplarni ham taqdim etdi. Ushbu turdagi gaplar Java-ga har xil istisno turlarini bitta blokda ishlashga imkon beradi, agar ular bir-birlarining subklasslari bo'lmasalar.

                harakat qilib ko'ring  methodThrowingExceptions();> ushlamoq (IOException | IllegalArgumentException sobiq)  // IOException ham, IllegalArgumentException ham shu erda ushlanib, ko'rib chiqiladi reportException(sobiq);>

                Agar yo'q bo'lsa ushlamoq blok tashlangan istisno turiga, tashqi blokning bajarilishiga (yoki usuli) mos keladi harakat qilib ko'ring . ushlamoq bayonot bekor qilinadi va istisno blok (yoki usul) tarkibidagi blokdan tashqariga uzatiladi. Istisno yuqoriga qarab tarqaladi chaqiruv to'plami mos keladigangacha ushlamoq blok hozirda faol usullardan biri ichida topilgan. Agar istisno eng yuqori darajaga qadar tarqaladigan bo'lsa asosiy mos kelmaydigan usul ushlamoq blok topilgan bo'lsa, istisno matnli tavsifi standart chiqish oqimiga yoziladi.

                Ichidagi bayonotlar nihoyat blok har doim dan keyin bajariladi harakat qilib ko'ring va ushlamoq istisno tashlanadimi yoki yo'qmi bloklari, hatto qaytish bayonotga erishildi. Bunday bloklar har doim bajarilishi kafolatlangan tozalash kodini taqdim etish uchun foydalidir.

                The ushlamoq va nihoyat bloklar ixtiyoriy, ammo quyidagilardan keyin kamida bittasi yoki boshqasi bo'lishi kerak harakat qilib ko'ring blokirovka qilish.

                harakat qilib ko'ring - resurslar bo'yicha bayonotlar

                harakat qilib ko'ring -with-resources bayonotlari maxsus turidir nihoyat sinab ko'ring amalga oshirish sifatida kiritilgan bayonotlar naqshni yo'q qilish Java SE 7. da. a harakat qilib ko'ring - resurslar bayonoti bilan harakat qilib ko'ring kalit so'zidan so'ng avtomatik ravishda chiqariladigan bir yoki bir nechta resurslarni ishga tushirish boshlanadi harakat qilib ko'ring blok bajarilishi tugadi. Resurslarni amalga oshirish kerak java.lang.AutoCloseable . harakat qilib ko'ring -with-resources bayonotlari bo'lishi shart emas ushlamoq yoki nihoyat odatdagidan farqli o'laroq blok nihoyat sinab ko'ring bayonotlar.

                harakat qilib ko'ring (FileOutputStream fos = yangi FileOutputStream("Fayl nomi"); XMLEncoder xEnc = yangi XMLEncoder(fos))  xEnc.writeObject(ob'ekt);> ushlamoq (IOException sobiq)  Logger.getLogger(Serializator.sinf.getName()).jurnal(Daraja.JUDA, bekor, sobiq);>

                Java 9-dan beri allaqachon e'lon qilingan o'zgaruvchilardan foydalanish mumkin:

                FileOutputStream fos = yangi FileOutputStream("Fayl nomi");XMLEncoder xEnc = yangi XMLEncoder(fos);harakat qilib ko'ring (fos; xEnc)  xEnc.writeObject(ob'ekt);> ushlamoq (IOException sobiq)  Logger.getLogger(Serializator.sinf.getName()).jurnal(Daraja.JUDA, bekor, sobiq);>

                otish bayonot

                The otish iborasi istisno qilish va blok yoki usulning bajarilishini tugatish uchun ishlatiladi. Tashlangan istisno misoli .dan keyin yoziladi otish bayonot.

                bekor methodThrowingExceptions(Ob'ekt obj)  agar (obj == bekor)  // NullPointerException turini istisno qiladi otish yangi NullPointerException(); > // Ob'ekt null bo'lsa, chaqirilmaydi doSomethingWithObject(obj);>

                Ipni bir vaqtda boshqarish

                Java uchun o'rnatilgan vositalar mavjud ko'p tarmoqli dasturlash. Ip maqsadlari uchun sinxronizatsiya The sinxronlashtirildi bayonot Java tiliga kiritilgan.

                Kod blokini sinxronizatsiya qilish uchun uning oldida sinxronlashtirildi kalit so'z, keyin qavs ichidagi qulflash ob'ekti. Bajarilayotgan ishchi sinxronlangan blokga etib borgach, u a ni oladi o'zaro chiqarib tashlash blokirovka qiladi, blokni bajaradi, so'ng qulfni chiqaradi. Blok qo'yilmaguncha ushbu blokga biron bir ip kirishi mumkin emas. Qulf sifatida har qanday nol bo'lmagan mos yozuvlar turidan foydalanish mumkin.

                / * SomeObject-ga qulfni oladi. Bu bo'lishi kerakmos yozuvlar turi va bo'sh bo'lishi kerak * /sinxronlashtirildi (someObject)  // Sinxronlashtirilgan bayonotlar>

                tasdiqlash bayonot

                tasdiqlash bayonotlar shu vaqtdan beri mavjud J2SE 1.4. Ushbu turdagi bayonotlar tuzish uchun ishlatiladi tasdiqlar muayyan sinflar yoki paketlar uchun ijro paytida yoqilishi va o'chirilishi mumkin bo'lgan manba kodida. Tasdiqni e'lon qilish uchun tasdiqlash kalit so'zdan keyin shartli ifoda ishlatiladi. Agar u baholasa yolg'on bayonot bajarilganda, istisno qo'yiladi. Ushbu bayonotda istisnoning batafsil xabari sifatida ishlaydigan ikkita nuqta va undan keyin boshqa bir iborani o'z ichiga olishi mumkin.

                // Agar n 0 ga teng bo'lsa, AssertionError tashlanaditasdiqlash n != 0;/ * Agar n 0 ga teng bo'lsa, AssertionError tashlanadiyo'g'on ichakdan keyingi xabar bilan * /tasdiqlash n != 0 : "n nolga teng edi";

                Ibtidoiy turlar

                Java-dagi ibtidoiy turlarga butun sonlar, suzuvchi nuqta raqamlari, UTF-16 kod birliklari va mantiqiy tip. Java-da faqat imzosiz turlar mavjud emas char turi, UTF-16 kod birliklarini ifodalash uchun ishlatiladi. Imzo qo'yilmagan turlarning etishmasligi, imzo qo'yilmagan o'ng siljish operatsiyasini kiritish orqali qoplanadi ( >>> ), bu C ++ da mavjud emas. Shunga qaramay, C va C ++ bilan mos kelmasligi sababli tanqidlar bildirildi. [2]

                Ibtidoiy turlar
                Ismni kiriting Wrapper klassi Qiymat Oraliq Hajmi Standart qiymat
                bayt java.lang.Byte tamsayı -128 dan +127 gacha 8 bit (1 bayt) 0
                qisqa java.lang.Short tamsayı -32,768 dan +32,767 gacha 16 bit (2 bayt) 0
                int java.lang.Integer tamsayı -2,147,483,648 dan +2,147,483,647 gacha 32 bit (4 bayt) 0
                uzoq java.lang.Long tamsayı -9,223,372,036,854,775,808 orqali
                +9,223,372,036,854,775,807
                64 bit (8 bayt) 0
                suzmoq java.lang.Float suzuvchi nuqta raqami ± 1.401298E-45 dan ± 3.402823E + 38 gacha 32 bit (4 bayt) 0,0f [3]
                ikki baravar java.lang.Double suzuvchi nuqta raqami ± 4.94065645841246E − 324 gacha
                ± 1.79769313486232E + 308
                64 bit (8 bayt) 0.0
                mantiqiy java.lang.Boolean Mantiqiy to'g'ri yoki yolg'on 1-bit (1-bit) yolg'on
                char java.lang.Character UTF-16 kod birligi (BMP belgi
                yoki surrogat juftlikning bir qismi)
                " u0000" orqali ' uFFFF' 16 bit (2 bayt) " u0000"

                char shartli ravishda bitta belgiga to'g'ri kelmaydi. Bu a-ning bir qismini aks ettirishi mumkin surrogat jufti, bu holda Unicode kod nuqtasi ikkitadan iborat ketma-ketlik bilan ifodalanadi char qiymatlar.

                Boks va quti

                Ushbu til xususiyati joriy etilgan J2SE 5.0. Boks ibtidoiy turdagi qiymatni mos keladigan mos yozuvlar turidagi qiymatga aylantirish operatsiyasi bo'lib, bu ushbu ibtidoiy turga o'ralgan bo'lib xizmat qiladi. Qutidan chiqarish mos yozuvlar turidagi qiymatni (ilgari qutiga) mos keladigan ibtidoiy turdagi qiymatga aylantirishning teskari operatsiyasi. Ikkala operatsiya ham aniq konversiyani talab qilmaydi.

                int foo = 42; // ibtidoiy tipButun son bar = foo; / * foo barga, bar Integer turiga, int * / uchun paket sifatida xizmat qiladi.int foo2 = bar; // Qutisiz ibtidoiy turga

                Malumot turlari

                Malumot turlariga sinf turlari, interfeys turlari va massiv turlari kiradi. Konstruktor chaqirilganda, uyumda ob'ekt yaratiladi va o'zgaruvchiga mos yozuvlar tayinlanadi. Ob'ektning o'zgaruvchisi doiradan chiqib ketganda, mos yozuvlar buziladi va mos yozuvlar qolmaganida, ob'ekt axlat deb belgilanadi. Keyin axlat yig'uvchi uni to'playdi va keyinchalik uni yo'q qiladi.

                Malumot o'zgaruvchisi bekor u biron bir ob'ektga murojaat qilmasa.

                Massivlar

                Java-da massivlar, xuddi sinf misollari singari, ish vaqtida yaratiladi. Massiv uzunligi yaratilish vaqtida aniqlanadi va uni o'zgartirish mumkin emas.

                int[] raqamlar = yangi int[5];raqamlar[0] = 2;raqamlar[1] = 5;int x = raqamlar[0];

                Boshlovchi

                // Uzoq sintaksisint[] raqamlar = yangi int[] 20, 1, 42, 15, 34>;// Qisqa sintaksisint[] raqamlar2 = 20, 1, 42, 15, 34>;

                Ko'p o'lchovli massivlar

                Java-da ko'p o'lchovli massivlar massivlar massivi sifatida ifodalanadi. Texnik jihatdan ular boshqa massivlarga mos yozuvlar massivlari bilan ifodalanadi.

                int[][] raqamlar = yangi int[3][3];raqamlar[1][2] = 2;int[][] raqamlar2 = 2, 3, 2>, 1, 2, 6>, 2, 4, 5>>;

                Ko'p o'lchovli massivlarning tabiati tufayli pastki massivlar uzunligi bo'yicha farq qilishi mumkin, shuning uchun ko'p o'lchovli massivlar C dan farqli o'laroq to'rtburchaklar shaklida bo'lishi shart emas:

                int[][] raqamlar = yangi int[2][]; // Faqat birinchi o'lchovni boshlashraqamlar[0] = yangi int[3];raqamlar[1] = yangi int[2];

                Sinflar

                Sinflar Java kabi ob'ektga yo'naltirilgan tilning asoslari. Ular tarkibida ma'lumotlarni saqlaydigan va ularni boshqaradigan a'zolar mavjud. Sinflar bo'linadi yuqori darajadagi va ichki. Ichki sinflar - bu boshqa sinfga joylashtirilgan sinflar, ular atrofdagi sinfning shaxsiy a'zolariga kirishlari mumkin. Ichki sinflarga quyidagilar kiradi a'zo sinflar (bilan belgilanishi mumkin statik oddiy uyalash uchun modifikator yoki ichki sinflarsiz), mahalliy sinflar va noma'lum sinflar.

                Deklaratsiya

                sinf Foo  // Sinf a'zolari>
                sinf Foo  // Yuqori darajadagi sinf sinf Bar  // Ichki sinf >>
                sinf Foo  // Yuqori darajadagi sinf statik sinf Bar  // Ichki sinf >>
                sinf Foo  bekor bar()  sinf Foobar // Bir usul ichida mahalliy sinf > >>
                sinf Foo  bekor bar()  yangi Ob'ekt() // Ob'ektni kengaytiradigan yangi noma'lum sinf yaratish >; >>

                Mavzu

                Sinfning statik bo'lmagan a'zolari ushbu sinfdan yaratilgan ob'ektlar bilan bog'liq bo'lgan misol o'zgaruvchilari va usullarining turlarini belgilaydilar. Ushbu ob'ektlarni yaratish uchun sinf yordamida yangi operator va sinf konstruktorini chaqirish.

                Foo foo = yangi Foo();

                A'zolarga kirish

                Ikkala instansiya a'zolari va statik sinflar bilan . (nuqta) operatori.

                Namuna a'zosiga kirish
                Instance a'zolariga o'zgaruvchining nomi orqali kirish mumkin.

                Ip foo = "Salom";Ip bar = foo.toUpperCase();

                Statik sinf a'zosiga kirish
                Statik a'zolarga sinf nomidan yoki boshqa har qanday turdan foydalanish orqali kirish mumkin. Buning uchun sinf nusxasini yaratish talab qilinmaydi. Statik a'zolar yordamida e'lon qilinadi statik modifikator.

                jamoat sinf Foo  jamoat statik bekor biror narsa qilmoq()  >>// Statik usulni chaqirishFoo.biror narsa qilmoq();

                Modifikatorlar

                Modifikatorlar - bu turdagi va turdagi a'zolar deklaratsiyasini o'zgartirish uchun ishlatiladigan kalit so'zlar. Eng muhimi, kirish modifikatorlarini o'z ichiga olgan kichik guruh mavjud.

                • mavhum - Sinf faqat asosiy sinf bo'lib xizmat qilishi va uni o'rnatish mumkin emasligini belgilaydi.
                • statik - Faqat a'zo sinflar uchun ishlatiladi, a'zo sinf o'z ichiga olgan sinfning ma'lum bir nusxasiga tegishli emasligini belgilaydi.
                • final - deb belgilangan sinflar final dan kengaytirilmaydi va biron bir subklassga ega bo'lishi mumkin emas.
                • qat'iyfp - Barcha suzuvchi nuqta operatsiyalari mos ravishda bajarilishi kerakligini belgilaydi IEEE 754 va oraliq natijalarni saqlash uchun yaxshilangan aniqlikdan foydalanishni taqiqlaydi.
                Kirish modifikatorlari

                The kirish modifikatorlari, yoki merosni o'zgartiruvchilar, sinflar, usullar va boshqa a'zolarning mavjudligini belgilang. A'zolar sifatida belgilangan jamoat har qanday joydan erishish mumkin. Agar sinf yoki uning a'zosi hech qanday modifikatorga ega bo'lmasa, standart kirish qabul qilinadi.

                jamoat sinf Foo  int boring()  qaytish 0; > xususiy sinf Bar  >>

                Quyidagi jadval, kirish joyi va kirilgan sinf yoki sinf a'zosi uchun modifikatorga qarab, sinf ichidagi kodning sinfga yoki usulga kirishini ko'rsatadi.

                O'zgartiruvchi Xuddi shu sinf yoki ichki sinf Xuddi shu paketdagi boshqa sinf Boshqa paket ichida kengaytirilgan sinf Boshqa paket ichida kengaytirilmagan
                xususiy ha yo'q yo'q yo'q
                sukut bo'yicha (shaxsiy paket) ha ha yo'q yo'q
                himoyalangan ha ha ha yo'q
                jamoat ha ha ha ha

                Ushbu rasm sinflar va paketlar ichidagi sinf a'zosi doirasini tavsiflaydi.

                Konstruktorlar va initsializatorlar

                A konstruktor ob'ektni ishga tushirish paytida chaqiriladigan maxsus usul. Uning maqsadi ob'ekt a'zolarini initsializatsiya qilishdir. Konstruktorlarning oddiy usullardan asosiy farqlari shundaki, konstruktorlar faqat sinfning misoli yaratilganda chaqiriladi va hech qachon hech narsa qaytarmaydi. Konstruktorlar keng tarqalgan usullar deb e'lon qilingan, ammo ular sinf nomi bilan nomlangan va qaytish turi ko'rsatilmagan:

                sinf Foo  Ip str; Foo()  // Argumentlarsiz konstruktor // Boshlash > Foo(Ip str)  // bitta argumentli konstruktor bu.str = str; >>

                Initsializatorlar - bu sinf yoki sinfning nusxasi yaratilganda bajariladigan kod bloklari. Ikki xil boshlanuvchilar mavjud, statik boshlang'ichlar va instansiya boshlovchilari.

                Statik initsializatorlar sinf yaratilganda statik maydonlarni initsializatsiya qiladi. Ular yordamida e'lon qilinadi statik kalit so'z:

                sinf Foo  statik  // Boshlash >>

                Sinf faqat bir marta yaratiladi. Shuning uchun statik initsializatorlar bir necha bor chaqirilmaydi. Aksincha, har safar sinfning misoli yaratilganda konstruktorga qo'ng'iroq qilishdan oldin installyatorlar avtomatik ravishda chaqiriladi. Konstruktorlardan farqli o'laroq, installyatsiya boshlovchilari hech qanday dalillarni qabul qila olmaydi va umuman ular hech qanday dalillarni keltira olmaydi tekshirilgan istisnolar (bir nechta maxsus holatlardan tashqari). Instance initializers blokda hech qanday kalit so'zsiz e'lon qilinadi:

                sinf Foo   // Boshlash >>

                Java axlat yig'ish mexanizmiga ega bo'lgani uchun, yo'q destruktorlar. Biroq, har bir ob'ektda a yakunlash () bo'lishi mumkin bo'lgan axlat yig'ishdan oldin chaqirilgan usul bekor qilindi yakunlashni amalga oshirish uchun.

                Usullari

                Java-dagi barcha bayonotlar usullar ichida joylashgan bo'lishi kerak. Usullar funktsiyalarga o'xshaydi, faqat sinflarga tegishli. Usul qaytarish qiymatiga, nomiga va odatda ba'zi argumentlar bilan chaqirilganda boshlangan ba'zi parametrlarga ega. C ++ ga o'xshash, hech narsa qaytarmaydigan usullar return type deb e'lon qilingan bekor . C ++ dan farqli o'laroq, Java-dagi usullarga ruxsat berilmaydi standart argument qiymatlar va usullar o'rniga ortiqcha yuklangan.

                sinf Foo  int bar(int a, int b)  qaytish (a*2) + b; > / * Bir xil nomdagi, ammo turli xil argumentlar to'plamiga ega ortiqcha yuklangan usul * / int bar(int a)  qaytish a*2; >>

                Usul foydalanish deb nomlanadi . ob'ektda yoki statik usulda, shuningdek, sinf nomida yozuv.

                Foo foo = yangi Foo();int natija = foo.bar(7, 2); // Statik bo'lmagan usul foo-da chaqiriladiint finalNatija = Matematika.abs(natija); // Statik usul chaqirish

                The uloqtiradi kalit so'z usulning istisno qilishini ko'rsatadi. Barcha tekshirilgan istisnolar vergul bilan ajratilgan ro'yxatda ko'rsatilishi kerak.

                bekor openStream() uloqtiradi IOException, myException  // IOException tashlanishi mumkinligini bildiradi>
                Modifikatorlar
                • mavhum - Mavhum usullar faqat ichida bo'lishi mumkin mavhum darslar, bunday usullar hech qanday tanaga ega emas va agar u o'zi mavhum bo'lmasa, subklassda bekor qilinishi kerak.
                • statik - Sinf nusxasini yaratmasdan usulni statik va qulay qiladi. Ammo statik usullar bir xil sinfdagi statik bo'lmagan a'zolarga kira olmaydi.
                • final - Subklassda usulni bekor qilish mumkin emasligini e'lon qiladi.
                • tug'ma - Ushbu usul orqali amalga oshirilishini bildiradi JNI platformaga bog'liq kodda. Haqiqiy dastur Java kodidan tashqarida sodir bo'ladi va bunday usullar tanaga ega emas.
                • qat'iyfp - qat'iy muvofiqligini e'lon qiladi IEEE 754 suzuvchi nuqta operatsiyalarini bajarishda.
                • sinxronlashtirildi - Ushbu usulni bajaradigan ip monitorga ega bo'lishi kerakligini e'lon qiladi. Uchun sinxronlashtirildi usullari - bu monitor namunasi yoki java.lang.Class agar usul statik bo'lsa.
                • Kirish modifikatorlari - sinflar bilan bir xil bo'lganlar.
                Varargs

                Ushbu til xususiyati joriy etilgan J2SE 5.0. Usulning so'nggi argumenti o'zgaruvchan arity parametri deb e'lon qilinishi mumkin, bu holda usul o'zgaruvchan arity usuliga aylanadi (sobit arity usullaridan farqli o'laroq) yoki oddiygina vararglar usul. Bu usulga parametr sifatida o'zgaruvchan sonli qiymatlarni, shu jumladan parametrlarsiz o'tkazish imkonini beradi. Ushbu qiymatlar uslub ichida qator sifatida mavjud bo'ladi.

                bekor printReport(Ip sarlavha, int. raqamlar)  // raqamlar vararglarni anglatadi Tizim.chiqib.println(sarlavha); uchun (int num : raqamlar)  Tizim.chiqib.println(num); >>// Varargs usulini chaqirishprintReport("Ma'lumotlar haqida xabar berish", 74, 83, 25, 96);

                Maydonlar

                Ma'lumotlarni saqlash uchun maydonlar yoki sinf o'zgaruvchilari sinf tanasida e'lon qilinishi mumkin.

                sinf Foo  ikki baravar bar;>

                Maydonlarni e'lon qilish paytida to'g'ridan-to'g'ri boshlash mumkin.

                sinf Foo  ikki baravar bar = 2.3;>
                Modifikatorlar
                • statik - maydonni statik a'zosi qiladi.
                • final - Maydonni faqat bir marta konstruktorda yoki initsializatsiya blokida yoki e'lon paytida, qaysi biri oldinroq bo'lsa, uni boshlashga imkon beradi.
                • vaqtinchalik - Ushbu maydon davomida saqlanmasligini bildiradi seriyalash.
                • o'zgaruvchan - Agar maydon e'lon qilingan bo'lsa o'zgaruvchan , barcha iplar o'zgaruvchiga mos qiymatni ko'rishi ta'minlanadi.

                Meros olish

                Java-dagi darslar faqat mumkin meros dan bitta sinf. Sinf deb belgilanmagan har qanday sinfdan olinishi mumkin final . -Dan foydalangan holda meros e'lon qilinadi uzaytiradi kalit so'z. Sinf o'zi yordamida murojaat qilishi mumkin bu kalit so'z va uni ishlatadigan to'g'ridan-to'g'ri superklass super kalit so'z.

                sinf Foo >sinf Foobar uzaytiradi Foo >

                Agar sinf o'zining superklassini ko'rsatmasa, u to'g'ridan-to'g'ri meros qilib oladi java.lang.Object sinf. Shunday qilib Java-dagi barcha sinflar subklasslardir Ob'ekt sinf.

                Agar superklassda parametrlarsiz konstruktor bo'lmasa, subklass o'z konstruktorlarida superklassning qanday konstruktoridan foydalanishi kerakligini ko'rsatishi kerak. Masalan:

                sinf Foo  jamoat Foo(int n)  // n bilan biror narsa qiling >>sinf Foobar uzaytiradi Foo  xususiy int raqam; // Superclass parametrsiz konstruktorga ega emas // shuning uchun biz superklassimizning qanday konstruktoridan va qanday foydalanishni belgilashimiz kerak jamoat Foobar(int raqam)  super(raqam); bu.raqam = raqam; >>
                Ortiqcha usullar

                C ++ dan farqli o'laroq, barchasi boshqa final Java-dagi usullar virtual va meros sinflari tomonidan bekor qilinishi mumkin.

                sinf Ishlash  jamoat int biror narsa qilmoq()  qaytish 0; >>sinf NewOperation uzaytiradi Ishlash  @Override jamoat int biror narsa qilmoq()  qaytish 1; >>
                Mavhum darslar

                An Mavhum sinf to'liq bo'lmagan yoki tugallanmagan deb hisoblanadigan sinfdir.Normal sinflar mavhum usullarga ega bo'lishi mumkin, ya'ni e'lon qilingan, ammo hali amalga oshirilmagan usullar, agar ular mavhum sinflar bo'lsa, C sinfida quyidagi holatlardan biri bo'lsa mavhum usullar mavjud. haqiqat:

                • C aniq mavhum usul deklaratsiyasini o'z ichiga oladi.
                • C ning har qanday superklasslarida mavhum usul mavjud va C uni amalga oshiradigan usulni e'lon qilmaydi va meros qilib olmaydi.
                • C ning to'g'ridan-to'g'ri ustki interfeysi usulni e'lon qiladi yoki meros qilib oladi (shuning uchun u albatta mavhum) va C uni amalga oshiradigan usulni e'lon qilmaydi yoki meros qilib olmaydi.
                • O'zi mavhum bo'lmagan mavhum sinfning subklassi yaratilishi mumkin, natijada mavhum sinf uchun konstruktor bajarilishi va shu sababli ushbu sinfning misol o'zgaruvchilari uchun maydon initsializatorlari bajarilishi mumkin.
                paket org.dwwwp.test;/** * @author jcrypto */jamoat sinf AbstractClass  xususiy statik final Ip Salom; statik  Tizim.chiqib.println(AbstractClass.sinf.getName() + ": blokning statik ish vaqti"); Salom = "salom" + AbstractClass.sinf.getName(); >  Tizim.chiqib.println(AbstractClass.sinf.getName() + ": instansiya blokining ishlash vaqti"); > jamoat AbstractClass()  Tizim.chiqib.println(AbstractClass.sinf.getName() + ": konstruktorning ish vaqti"); > jamoat statik bekor Salom()  Tizim.chiqib.println(Salom); >>
                paket org.dwwwp.test;/** * @author jcrypto */jamoat sinf CustomClass uzaytiradi AbstractClass  statik  Tizim.chiqib.println(CustomClass.sinf.getName() + ": blokning statik ish vaqti"); >  Tizim.chiqib.println(CustomClass.sinf.getName() + ": instansiya blokining ishlash vaqti"); > jamoat CustomClass()  Tizim.chiqib.println(CustomClass.sinf.getName() + ": konstruktorning ish vaqti"); > jamoat statik bekor asosiy(Ip[] kamon)  CustomClass nc = yangi CustomClass(); Salom(); //AbstractClass.hello();// ham amal qiladi >>
                org.dwwwp.test.AbstractClass: statik blok runtimeorg.dwwwp.test.CustomClass: statik blok runtimeorg.dwwwp.test.AbstractClass: misol blok runtimeorg.dwwwp.test.AbstractClass: konstruktor runtimeorg.dwwwp.test.CustomClass: .dwwwp.test.CustomClass: org.dwwwp.test.AbstractClass dan konstruktor ish vaqti bilan salom

                Ro'yxatlar

                Ushbu til xususiyati joriy etilgan J2SE 5.0. Texnik sanoq - bu uning tanasida doimiy konstantalarni o'z ichiga olgan o'ziga xos sinf. Har bir enum konstantasi enum turidagi nusxasini belgilaydi. Ro'yxatga olish sinflarini hisobga olishdan tashqari, biron bir joyda ro'yxatga olish sinflarini yaratish mumkin emas.

                enum Fasl  QISH, BAHOR, YOZ, KUZ>

                Enum konstantalarida konstruktorlar bo'lishi mumkin, ular sinf yuklanganda chaqiriladi:

                jamoat enum Fasl  QISH("Sovuq"), BAHOR("Issiqroq"), YOZ("Issiq"), KUZ("Sovutgich"); Fasl(Ip tavsif)  bu.tavsif = tavsif; > xususiy final Ip tavsif; jamoat Ip getDescription()  qaytish tavsif; >>

                Hisoblashlar sinf tanasiga ega bo'lishi mumkin, bu holda ular enum sinfini kengaytiradigan noma'lum sinflar kabi ko'rib chiqiladi:

                jamoat enum Fasl  QISH  Ip getDescription() qaytish "sovuq";> >, BAHOR  Ip getDescription() qaytish "issiqroq";> >, YOZ  Ip getDescription() qaytish "issiq";> >, FALL  Ip getDescription() qaytish "salqinroq";> >;>

                Interfeyslar

                Interfeyslar - bu maydonlarni o'z ichiga olmaydigan va odatda amalga oshirilmasdan bir qator usullarni aniqlaydigan turlar. Ular har xil miqdordagi turli xil dasturlar bilan shartnoma tuzish uchun foydalidir. Har qanday interfeys bevosita mavhumdir. Interface methods are allowed to have a subset of access modifiers depending on the language version, qat'iyfp , which has the same effect as for classes, and also statik since Java SE 8.

                interfeys ActionListener  int ACTION_ADD = 0; int ACTION_REMOVE = 1; bekor actionSelected(int harakat);>

                Implementing an interface

                An interface is implemented by a class using the asboblar kalit so'z. It is allowed to implement more than one interface, in which case they are written after asboblar keyword in a comma-separated list. Class implementing an interface must override all its methods, otherwise it must be declared as abstract.

                interfeys RequestListener  int requestReceived();>sinf ActionHandler asboblar ActionListener, RequestListener  jamoat bekor actionSelected(int harakat)  > jamoat int requestReceived()  >>//Calling method defined by interfaceRequestListener tinglovchi = yangi ActionHandler(); /*ActionHandler can be represented as RequestListener. */tinglovchi.requestReceived(); /*. and thus is known to implement requestReceived() method*/

                Functional interfaces and lambda expressions

                These features were introduced with the release of Java SE 8. An interface automatically becomes a functional interface if it defines only one method. In this case an implementation can be represented as a lambda expression instead of implementing it in a new class, thus greatly simplifying writing code in the functional style. Functional interfaces can optionally be annotated with the @FunctionalInterface annotation, which will tell the compiler to check whether the interface actually conforms to a definition of a functional interface.

                // A functional interface@FunctionalInterfaceinterfeys Hisoblash  int hisoblash(int someNumber, int someOtherNumber);>// A method which accepts this interface as a parameterint runCalculation(Hisoblash hisoblash)  qaytish hisoblash.hisoblash(1, 2);>// Using a lambda to call the methodrunCalculation((raqam, otherNumber) -> raqam + otherNumber);// Equivalent code which uses an anonymous class insteadrunCalculation(yangi Hisoblash()  @Override jamoat int hisoblash(int someNumber, int someOtherNumber)  qaytish someNumber + someOtherNumber; >>)

                Lambda's parameters types don't have to be fully specified and can be inferred from the interface it implements. Lambda's body can be written without a body block and a qaytish statement if it is only an expression. Also, for those interfaces which only have a single parameter in the method, round brackets can be omitted.

                // Same call as above, but with fully specified types and a body blockrunCalculation((int raqam, int otherNumber) ->  qaytish raqam + otherNumber;>);// A functional interface with a method which has only a single parameterinterfeys StringExtender  Ip extendString(Ip kiritish);>// Initializing a variable of this type by using a lambdaStringExtender kengaytiruvchi = kiritish -> kiritish + " Extended";

                Uslubiy qo'llanmalar

                It is not necessary to use lambdas when there already is a named method compatible with the interface. This method can be passed instead of a lambda using a method reference. There are several types of method references:

                Malumot turi Misol Equivalent lambda
                Statik Integer::sum (number, otherNumber) -> number + otherNumber
                Cheklangan "LongString"::substring index -> "LongString".substring(index)
                Cheklanmagan String::isEmpty string -> string.isEmpty()
                Class constructor ArrayList ::new capacity -> new ArrayList (capacity)
                Array constructor String[]::new size -> new String[size]

                The code above which calls runCalculation could be replaced with the following using the method references:

                runCalculation(Butun son::sum);

                Meros olish

                Interfaces can inherit from other interfaces just like classes. Unlike classes it is allowed to inherit from multiple interfaces. However, it is possible that several interfaces have a field with the same name, in which case it becomes a single ambiguous member, which cannot be accessed.

                /* Class implementing this interface must implement methods of bothActionListener and RequestListener */interfeys EventListener uzaytiradi ActionListener, RequestListener  >

                Default methods

                Java SE 8 introduced default methods to interfaces which allows developers to add new methods to existing interfaces without breaking compatibility with the classes already implementing the interface. Unlike regular interface methods, default methods have a body which will get called in the case if the implementing class doesn't override it.

                interfeys StringManipulator  Ip extendString(Ip kiritish); // A method which is optional to implement sukut bo'yicha Ip shortenString(Ip kiritish)  qaytish kiritish.pastki chiziq(1); >>// This is a valid class despite not implementing all the methodssinf PartialStringManipulator asboblar StringManipulator  @Override jamoat Ip extendString(Ip kiritish)  qaytish kiritish + " Extended"; >>

                Statik usullar

                Static methods is another language feature introduced in Java SE 8. They behave in exactly the same way as in the classes.

                interfeys StringUtils  statik Ip shortenByOneSymbol(Ip kiritish)  qaytish kiritish.pastki chiziq(1); >>StringUtils.shortenByOneSymbol("Sinov");

                Private methods

                Private methods were added in the Java 9 release. An interface can have a method with a body marked as private, in which case it will not be visible to inheriting classes. It can be called from default methods for the purposes of code reuse.

                interfeys Logger  sukut bo'yicha bekor logError()  jurnal(Daraja.XATO); > sukut bo'yicha bekor logInfo()  jurnal(Daraja.INFO); > xususiy bekor jurnal(Daraja Daraja)  SystemLogger.jurnal(Daraja.id); >>

                Izohlar

                Asosiy maqola: Java annotation

                Annotations in Java are a way to embed metadata into code. This language feature was introduced in J2SE 5.0.

                Annotation types

                Java has a set of predefined annotation types, but it is allowed to define new ones. An annotation type declaration is a special type of an interface declaration. They are declared in the same way as the interfaces, except the interfeys keyword is preceded by the @ imzo. All annotations are implicitly extended from java.lang.annotation.Annotation and cannot be extended from anything else.

                @interface BlockingOperations >

                Annotations may have the same declarations in the body as the common interfaces, in addition they are allowed to include enums and annotations. The main difference is that abstract method declarations must not have any parameters or throw any exceptions. Also they may have a default value, which is declared using the sukut bo'yicha keyword after the method name:

                @interface BlockingOperations  mantiqiy fileSystemOperations(); mantiqiy networkOperations() sukut bo'yicha yolg'on;>
                Usage of annotations

                Annotations may be used in any kind of declaration, whether it is package, class (including enums), interface (including annotations), field, method, parameter, constructor, or local variable. Also they can be used with enum constants. Annotations are declared using the @ sign preceding annotation type name, after which element-value pairs are written inside brackets. All elements with no default value must be assigned a value.

                @BlockingOperations(/*mandatory*/ fileSystemOperations,/*optional*/ networkOperations = to'g'ri)bekor openOutputStream()  //Annotated method>

                Besides the generic form, there are two other forms to declare an annotation, which are shorthands. Marker annotation is a short form, it is used when no values are assigned to elements:

                @Unused // Shorthand for @Unused()bekor travelToJupiter() >

                The other short form is called single element annotation. It is used with annotations types containing only one element or in the case when multiple elements are present, but only one elements lacks a default value. In single element annotation form the element name is omitted and only value is written instead:

                /* Equivalent for @BlockingOperations(fileSystemOperations = true).networkOperations has a default value anddoes not have to be assigned a value */@BlockingOperations(to'g'ri)bekor openOutputStream() >

                Generika

                Asosiy maqola: Java-dagi umumiy narsalar

                Generika, yoki parametrlangan turlari yoki parametrik polimorfizm is one of the major features introduced in J2SE 5.0. Before generics were introduced, it was required to declare all the types explicitly. With generics it became possible to work in a similar manner with different types without declaring the exact types. The main purpose of generics is to ensure type safety and to detect runtime errors during compilation. Unlike C#, information on the used parameters is not available at runtime due to o'chirish turi. [4]

                Umumiy darslar

                Classes can be parameterized by adding a type variable inside angle brackets ( < va >) following the class name. It makes possible the use of this type variable in class members instead of actual types. There can be more than one type variable, in which case they are declared in a comma-separated list.

                It is possible to limit a type variable to a subtype of some specific class or declare an interface that must be implemented by the type. In this case the type variable is appended by the uzaytiradi keyword followed by a name of the class or the interface. If the variable is constrained by both class and interface or if there are several interfaces, the class name is written first, followed by interface names with & sign used as the delimiter.

                /* This class has two type variables, T and V. T must be a subtype of ArrayList and implement Formattable interface */jamoat sinf MapperT uzaytiradi ArrayList & Formattable, V>  jamoat bekor qo'shish(T qator, V element)  // array has add method because it is an ArrayList subclass qator.qo'shish(element); >>

                When a variable of a parameterized type is declared or an instance is created, its type is written exactly in the same format as in the class header, except the actual type is written in the place of the type variable declaration.

                /* Mapper is created with CustomList as T and Integer as V.CustomList must be a subclass of ArrayList and implement Formattable */MapperCustomList, Butun son> xaritachi = yangi MapperCustomList, Butun son>();

                Since Java SE 7, it is possible to use a diamond ( <> ) in place of type arguments, in which case the latter will be inferred. The following code in Java SE 7 is equivalent to the code in the previous example:

                MapperCustomList, Butun son> xaritachi = yangi Mapper<>();

                When declaring a variable for a parameterized type, it is possible to use wildcards instead of explicit type names. Wildcards are expressed by writing ? sign instead of the actual type. It is possible to limit possible types to the subclasses or superclasses of some specific class by writing the uzaytiradi keyword or the super keyword correspondingly followed by the class name.

                /* Any Mapper instance with CustomList as the first parametermay be used regardless of the second one.*/MapperCustomList, ?> xaritachi;xaritachi = yangi MapperCustomList, Mantiqiy>();xaritachi = yangi MapperCustomList, Butun son>();/* Will not accept types that use anything buta subclass of Number as the second parameter */bekor addMapper(Mapper, ? uzaytiradi Raqam> xaritachi) >

                Generic methods and constructors

                Usage of generics may be limited to some particular methods, this concept applies to constructors as well. To declare a parameterized method, type variables are written before the return type of the method in the same format as for the generic classes. In the case of constructor, type variables are declared before the constructor name.

                sinf Mapper  // The class itself is not generic, the constructor is T, V> Mapper(T qator, V element)  >>/* This method will accept only arrays of the same type asthe searched item type or its subtype*/statik T, V uzaytiradi T> mantiqiy o'z ichiga oladi(T element, V[] arr)  uchun (T currentItem : arr)  agar (element.teng(currentItem))  qaytish to'g'ri; > > qaytish yolg'on;>

                Generic interfaces

                Interfaces can be parameterized in the similar manner as the classes.

                interfeys KengaytirilganT uzaytiradi Raqam>  bekor addItem(T element);>// This class is parameterizedsinf ArrayT uzaytiradi Raqam> asboblar KengaytirilganT>  bekor addItem(T element)  >>// And this is not and uses an explicit type insteadsinf IntegerArray asboblar KengaytirilganButun son>  bekor addItem(Butun son element)  >>

                Shuningdek qarang

                • Kompyuter dasturlash portali

                Java Operators

                Operators are used to perform operations on variables and values.

                In the example below, we use the + operator to add together two values:

                Example

                int x = 100 + 50; 

                Although the + operator is often used to add together two values, like in the example above, it can also be used to add together a variable and a value, or a variable and another variable:

                Example

                int sum1 = 100 + 50; // 150 (100 + 50) int sum2 = sum1 + 250; // 400 (150 + 250) int sum3 = sum2 + sum2; // 800 (400 + 400) 

                Java divides the operators into the following groups:

                • Arithmetic operators
                • Assignment operators
                • Comparison operators
                • Logical operators
                • Bitwise operators

                Arithmetic Operators

                Arithmetic operators are used to perform common mathematical operations.

                Operator Name Description Example Try it
                + Addition Adds together two values x + y Try it »
                - Subtraction Subtracts one value from another x - y Try it »
                * Multiplication Multiplies two values x * y Try it »
                / Division Divides one value by another x / y Try it »
                % Modulus Returns the division remainder x % y Try it »
                ++ Increment Increases the value of a variable by 1 ++x Try it »
                -- Decrement Decreases the value of a variable by 1 --x Try it »

                Java Assignment Operators

                Assignment operators are used to assign values to variables.

                In the example below, we use the assignment operator ( = ) to assign the value 10 to a variable called x:

                Example

                int x = 10; 

                The addition assignment operator ( += ) adds a value to a variable:

                Example

                int x = 10; x += 5; 

                A list of all assignment operators:

                Operator Example Same As Try it
                = x = 5 x = 5 Try it »
                += x += 3 x = x + 3 Try it »
                -= x -= 3 x = x - 3 Try it »
                *= x *= 3 x = x * 3 Try it »
                /= x /= 3 x = x / 3 Try it »
                %= x %= 3 x = x % 3 Try it »
                &= x &= 3 x = x & 3 Try it »
                |= x |= 3 x = x | 3 Try it »
                ^= x ^= 3 x = x ^ 3 Try it »
                >>= x >>= 3 x = x >> 3 Try it »
                x

                x = x

                Try it »

                Java Comparison Operators

                Comparison operators are used to compare two values (or variables). This is important in programming, because it helps us to find answers and make decisions.

                The return value of a comparison is either true or false . These values are known as Boolean values, and you will learn more about them in the Booleans and If..Else chapter.

                In the following example, we use the greater than operator ( > ) to find out if 5 is greater than 3:

                Example

                int x = 5; int y = 3; System.out.println(x > y); // returns true, because 5 is higher than 3 
                Operator Name Example Try it
                == Equal to x == y Try it »
                != Not equal x != y Try it »
                > Greater than x > y Try it »
                Less than x < y Try it »
                >= Greater than or equal to x >= y Try it »
                Less than or equal to x

                Try it »

                Java Logical Operators

                You can also test for true or false values with logical operators.

                Logical operators are used to determine the logic between variables or values:

                Operator Name Description Example Try it
                && Logical and Returns true if both statements are true x < 5 && x < 10 Try it »
                || Logical or Returns true if one of the statements is true x < 5 || x < 4 Try it »
                ! Logical not Reverse the result, returns false if the result is true !(x < 5 && x < 10) Try it »

                Java tili operatorlari

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

                АРАБ ЖЫЛҚЫСЫ

                Араб жылқысы - байырғы жылқы тұқымдарының бірі.

                АРХЕОЛОГИЯ ДЕГЕНІМІЗ НЕ?

                тарих ғылымының бір саласы, алғашқы қауымнан, көне заманнан, орта ғасырдан қалған заттай есқерткіштерді зерттеу арқылы адам қоғамының өткендегі тарихын анықтайды.

                БЕЛБЕУ ТАСТАУ

                Қазақтың ұлттық ойыны

                СОЛТҮСТІК МҰЗДЫ МҰХИТ

                Жер шарындағы ең кіші мұхит

                САРЫАРҚА ҚАТПАРЛЫ АЙМАҒЫ

                Сарыарқа қатпарлы аймағы - Азиядағы дербес ірі геологиялық құрылымдардың бірі.

                ӘЛЕМДЕГІ ЕҢ ЖЫЛДАМ ҚҰСТАР

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

                АУА

                Жер атмосферасын құрайтын, негізінен азотпен оттектен тұратын газдар қоспасы. Ауа су мен жер қыртысының құрамында да болады.

                БІРЖАН - САРА АЙТЫСЫ

                Біржан мен Сараның 1871 жылы қазіргі Талдықорган облысының Қапал - Ақсу өңірінде кездескендегі айтысы.

                Қазақстандық ашық база қоры -Uniface! Бұл сайттан сіз қазақша мәліметтер таба аласыз!

                Copyright © UniFace, 2018.

                Java dasturlash tili

                Barcha dasturlash tillari kabi Java dasturlash tili ham o’zining

                Izoh

                Sonli tiplar (Butun)

                Sonli tiplar (Haqiqiy)

                Sonli literallar

                Simvol tipi(char)

                • Xotira 2 bayt
                • Qiymatlar sohasi '\u0000' dan 'uFFFF gacha
                • Literallar misol: ‘h’, ‘\n’, ‘\u002A’
                • '\u0041' // lotincha A harfi
                • '\u0410' // ruscha А harfi
                • '\u0391' // grekcha A harfi
                • Maxsus literallar:
                • literal ma’nosi unicode
                • \b 1 positsiyaga orqaga qaytish \u0008
                • \t tabulyatsiya \u0009
                • \n yangi satrga o’tish \u000a
                • \“ qo’shtirnoq \u0022
                • \’ tirnoq \u0027
                • \\ teskari slesh \u005c

                Mantiqiy tip(boolean)

                Satr tipi (String)

                • Simvollar massivi
                • “” uzunligi 0 satr
                • “\”” 1 ta simvoldan iborat satr
                • “Oddiy satr” uzunligi 10 satr
                • “Salom dunyo!\nDunyo!” 2-qatordan iborat satr

                O’zgaruvchilar

                • E’lon:
                • [ ’ ‘] ’ ‘
                • Misol:
                • double maosh;
                • Int ishkuni;
                • long a;
                • char x;
                • boolean jinsi;
                • Qiymat berish va initsializatsiya:
                • int ishkuni; // bu — e’lon
                • ishkuni = 12; // bu — qiymat berish operatori
                • int ishkuni = 12; // bu — initsializatsiya
                • String ism = “Alisher” // massivga ko’rsatgich
                • String s = “Alisher” // o’sha massivga ko’rsatgich

                Konstantalar

                • [ ’ ‘] final
                • Misol:
                • final double K = 2.54;
                • Sinf konstantasi:
                • static final double Y = 2.54;
                • Global konstanta:
                • public static final double R = 2.54;

                Misol: fayl nomi oddiy.java

                • class oddiy
                • public static void main(String a[ ])
                • int b=4;
                • double x,y;
                • String s1;
                • x=110;
                • y=x+b;
                • s1="Natija maktab";
                • String s2="mak"+"tab";
                • System.out.println(ii==is); //true
                • System.out.println(f==d); //true
                • System.out.println(s1==s2); //true

                Operatorlar(Mantiqiy)

                • ?: (ternar) |, &, ^, ||, &&, (binar)
                • ! (unar)
                • Ternar operator:
                • ?:
                • Misollar:
                • x = x > 0 ? x : -x; // |x|
                • int x = 9;
                • int y = 55;
                • x 20; // true
                • x == 9 && y == 100; // false
                • x 20; // true
                • x == 9 || y == 100; // true
                • x 20; // true
                • h = x == 10 & y == 55; // false
                • x 20; // true
                • x == 10 | y == 55; // true
                • x 20; // false
                • x == 9 ^ y == 100; // true
                • x == 10 ^ y == 55; // true
                • !(x == y); // true
                • !(x >, >>> (binar)
                • 20 >> 00 = 11111111111111111111111111101011 = -21
                • -21 >>> 01 = 01111111111111111111111111110101 = 2147483637
                • .
                • -21 >>> 29 = 00000000000000000000000000000111 = 7
                • -21 >>> 30 = 00000000000000000000000000000011 = 3
                • -21 >>> 31 = 00000000000000000000000000000001 = 1

                Tiplarni almashtirish(kengaytirish)

                Binar operatsiya tipi

                • Agar kamida 1 ta operanddouble tipida bo’lsa 2-operand ham double tipiga almashtiriladi.
                • Aks holda agar kamida 1 ta operand float tipida bo’lsa 2- operand ham float tipiga almashtiriladi.
                • Aks holda agar kamida 1- ta operand long tipida bo’lsa 2- operan hamlong tipiga almashtiriladi.
                • Aks holda 2-la operand ham int tipiga almashtiriladi.

                Tiplarni keltirish(toraytirish-cast)

                • byte → char
                • short → byte; short → char;
                • char → byte; char → short;
                • int → byte; int → short; int → char;
                • long → byte; long → short; long → char; long → int;
                • float → byte; float → short; float → char; float → int; float → long;
                • double → byte; double → short; double → char; double → int;
                • double → long; double → float;
                • double х = 9.997;
                • int nx = (int)x; //nx =9
                • double x = 9.997;
                • int nx = (int)Math.round(x); //nx = 10

                Operatorlar iyerarxiyasi

                • [] . () (metodni chqirish) chapdan o’ngga
                • ! ~ ++ -- +(unar) –(unar) ()(keltirish) o’ngdan chapga
                • * / % chapdan o’ngga
                • + - chapdan o’ngga
                • > >>> chapdan o’ngga
                • == != chapdan o’ngga
                • & chapdan o’ngga
                • ^ chapdan o’ngga
                • | chapdan o’ngga
                • && chapdan o’ngga
                • || chapdan o’ngga
                • ?: chapdan o’ngga
                • = += -= *= /= %= |= ||= >= >>>= o’ngdan chapga

                String tipi

                • String e = ""; // Bo’sh satr
                • String greeting = "Hello";
                • String expletive = “Oddiy";
                • String PG13 = “ satr";
                • String message = expletive + PG13;
                • int age = 13;
                • String rating = "PG" + age; //rating=PG13
                • String s1 = "abc";
                • String s2 = "abc";
                • String s3 = "a"+"bc";
                • String s4="ab";
                • System.out.println(s1==s2); //true
                • System.out.println(s1==s3); //true
                • System.out.println(s1==(s2+"c")); //false

                Ko’rsatgich tiplar

                • char theCharacter = ‘J’;
                • String title = “Java”;
                • String, Massiv va Sinflar
                • ko’rsatgich tiplari hisoblanadi

                Bajarilishni boshqarish operatorlari(tarmoqlash)

                • If ( ) ;
                • --------------------------------
                • If ( ) ; else ;
                • ---------------------------------
                • If ( ) ;
                • else if ( ) ;
                • else if ( ) ;
                • [else ;]
                • ----------------------------------
                • Blok operatori

                Bajarilishni boshqarish operatorlari(tanlash)

                • switch( )
                • case : [operator1; break;]
                • case : [operator2; break;]
                • case : [operator3; break]
                • [; default: ]
                • >;
                • - faqat byte, short, int, char tiplarida bo’lishi mumkin
                • switch(c)
                • case ‘a’:
                • case ‘A’:
                • case ‘o’:
                • case ‘O’:
                • case ‘u’:
                • case ‘U’: System.out.println(c + “ is a vowel.”); break;
                • case ‘y’:
                • case ‘Y’:
                • case ‘w’:
                • case ‘W’ System.out.println(c + “ is sometimes a vowel.”); break;
                • default: System.out.println(c + “ is not avowel.”);
                • >;

                Bajarilishni boshqarish operatorlari(tsikllar)

                Do'stlaringiz bilan baham:

                Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar 2023
                ma'muriyatiga murojaat qiling

                Operators in Java and its Types

                Operators are the constructs that can manipulate the values of the operands. Consider the expression 2 + 3 = 5, here 2 and 3 are operands and + is called operator. In this article on operators, the goal is to get you the expertise required to get started and work with operators in Java.

                Java supports the following types of operators:

                • Arithmetic Operators
                • Assignment Operators
                • Logical Operators
                • Relational Operators
                • Unary Operators
                • Bitwise Operators
                • Ternary Operators
                • Shift Operators

                Let’s focus on each of these operators one by one.

                Arithmetic Operators in Java

                Arithmetic Operators are used to performing mathematical operations like addition, subtraction, etc. Assume that A = 10 and B = 20 for the below table.

                Consider the below example:

                package Edureka;
                public class ArithmeticOperators public static void main(String[] args) int A = 10;
                int B = 20;
                System.out.println(A + B);
                System.out.println(A - B);
                System.out.println(A * B);
                System.out.println(A / B);
                System.out.println(A % B);
                >
                >

                Output:

                Assignment Operators in Java

                An Assignment Operator is an operator used to assign a new value to a variable. Assume A = 10 and B = 20 for the below table.

                Consider the below example:

                package Edureka;public class JavaOperators public static void main(String[] args) int a = 10; 
                int b=20;
                int c;
                System.out.println(c = a); // Output =10
                System.out.println(b += a);// Output=30
                System.out.println(b -= a);// Output=20
                System.out.println(b *= a);// Output=200
                System.out.println(b /= a);// Output=2
                System.out.println(b %= a);// Output=0
                System.out.println(b ^= a);// Output=0
                >
                >

                Moving ahead in Java operator's tutorial, let’s see what are comparison operators.

                Relational Operators in Java

                These operators compare the values on either side of them and decide the relation among them. Assume A = 10 and B = 20.

                Consider the below example:

                package Edureka;public class JavaOperators public static void main(String[] args) int a = 10; 
                int b=20;
                System.out.println(a == b); // returns false because 10 is not equal to 20
                System.out.println(a != b); // returns true because 10 is not equal to 20
                System.out.println(a > b); // returns false
                System.out.println(a < b); // returns true
                System.out.println(a >= b); // returns false
                System.out.println(a >>

                Next up, let’s focus on logical operators in Java.

                Logical Operators in Java

                The following are the Logical operators present in Java:

                Consider the below example:

                package Edureka;public class JavaOperators public static void main(String[] args) int a = 10; 
                System.out.println(a System.out.println(a System.out.println(!(a >
                >

                Now let’s see unary operators in Java.

                Unary Operator in Java

                Unary operators are the one that needs a single operand and are used to increment a value, decrement or negate a value.

                Consider the following example:

                package Edureka;public class JavaOperators public static void main(String[] args) int a = 10; 
                boolean b=true;
                System.out.println(a++); //returns 11
                System.out.println(++a);
                System.out.println(a--);
                System.out.println(--a);
                System.out.println(!b); // returns false
                >>

                Moving ahead, let’s understand bitwise operator in Java

                Bitwise Operator in Java

                Bitwise operations directly manipulate bits. In all computers, numbers are represented with bits, a series of zeros and ones. In fact, pretty much everything in a computer is represented by bits. Assume that A = 10 and B = 20 for the below table.

                Consider the example shown below:

                package Edureka;public class JavaOperators public static void main(String[] args) int a = 58; //111010 
                int b=13; //1101
                System.out.println(a&b); //returns 8 = 1000
                System.out.println(a|b); //63=111111
                System.out.println(a^b); //55=11011
                System.out.println(~a); //-59
                >
                >

                Next up, let’s focus on the ternary operator in Java

                Ternary Operators in Java

                The ternary operator is a conditional operator that decreases the length of code while performing comparisons and conditionals. This method is an alternative for using if-else and nested if-else statements. The order of execution for this operator is from left to right.

                Syntax:

                (Condition) ? (Statement1) : (Statement2);
                • Condition: It is the expression to be evaluated which returns a boolean value.
                • Statement 1:It is the statement to be executed if the condition results in a true state.
                • Statement 2:It is the statement to be executed if the condition results in a false state.

                Consider the below example:

                package Edureka;public class JavaOperators public static void main(String[] args) int a = 20, b = 10, c = 30, res; 
                res = ((a > b) ? (a > c)? a: c: (b > c)? b: c);
                System.out.println("Max of three numbers = "+ res);
                >
                >

                Output — Max of three numbers = 30

                Moving ahead to the last java operator, let’s understand Shift operators in Java.

                Shift Operators in Java

                Shift operators are used to shifting the bits of a number left or right, thereby multiplying or dividing the number. There are three different types of shift operators, namely left shift operator()>) and unsigned right shift operator(>>>).

                Syntax:

                numbershift_op number_of_places_to_shift;

                Consider the following example:

                package Edureka;public class JavaOperators public static void main(String[] args) int a=58; 
                System.out.println(a <<2); //232=11101000
                System.out.println(a>>2); //returns 14=1110
                System.out.println(a>>>2); //returns 14
                >
                >

                With this, we come to an end of this article on the different Java operators. I hope this article was informative to you.

                If you wish to check out more articles on the market’s most trending technologies like Artificial Intelligence, DevOps, Ethical Hacking, then you can refer to Edureka’s official site.

                Do look out for other articles in this series which will explain the various other aspects of Java.