Java dasturlash tilining asosiy tushunchalaridan biri bu — klassdir. Dasturlash tilining umumiy tuzilishi, shu tushunchaga borib taqaladi. Klass bilan bir qatorda ob’yekt, metod degan tushunchalar yonma-yon keladi. Maqola, klass haqidagi boshlang‘ich ma’lumotlarni beradi.

Klass, ob’yekt, metod tushunchalarini yaxshilab tushunib olish uchun, ko‘p joyda uchratishingiz mumkin bo‘lgan «kuchuk» misolini ko‘rib chiqamiz. Bizda ikkita kuchuk bor, birining ismi «Sharik«, ikkinchisiniki «Bobik«. Bu kuchuklar nima qilaoladi? Hamma kuchuklar singari tishlashi, vovulashi, uxlashi mumkin.

YUqoridagi misoldan nimalarni bilib olishimiz mumkin.

1. Kuchuk.

2. «Sharik», «Bobik».

3. Tishlash, vovulash, uxlash.

Endi bu nomlarni dasturlashga o‘giramiz, demak, kuchuk tushunchasi bu — klass, «Sharik» va «Bobik» tushunchalari bu — klassning ob’yektlari, tishlash, vovulash va uxlash tushunchalari — klassning metodlari.

Klass — bu umumiy tushuncha bo‘lib, ob’yektlar majmuasini umumiy nomidir. Misol uchun «Mashina» klass, uning ob’yektlari matiz, spark,…

Klass ob’yektlari — biror klassning yaqqol a’zolaridir. Bizning holda «Sharik», «Bobik» kuchuk klassining ob’yektlaridir. Klass ob’yektlarini, ekzemplyar deb ham atashadi.

Klass metodlari — biror bir klassga tegishli bo‘lgan ob’yekt harakatlaridir. Tishlash, vovulash, uxlash bu — kuchuk klasiga tegishli «Sharik» va «Bobik» ob’yektlarining metodlari.

Nazariy qismga xulosa qiladigan bo‘lsak, klass bu ob’yektlar uchun shablon bo‘lib, o‘zida bir yoki bir necha ob’yektlarni saqlaydi, ob’yektlar o‘z navbatida bajarishi mumkin bo‘lgan bir yoki bir necha metodlariga ega. Bitta dasturda bir necha klasslar bo‘lishi mumkin. Bu ko‘rinishda dasturlash «Ob’yektga yo‘naltirilgan dasturlash»(OOP) deyiladi. Bunday dasturlash turini ushbu maqoladan o‘qib olishingiz mumkin.

Endi dasturda klass yaratamiz. Java dasturlash tilida klass yaratish uchun, «class» nomli kalit so‘zdan foydalanamiz. Oldingi darslarda, bu kalit so‘z orqali klasslar yaratgan edik. Unda biz faqat asosiy metod(main())ga konteyner sifatida yaratib, java sintaksisini o‘rganishga harakat qildik, lekin klass imkoniyatlari bu bilan cheklanmaydi.

Quyida biz klass yaratishni sintaksisini ko‘rib chiqamiz.

class klass_nomi {
tip ekzemplyara_1;
tip ekzemplyara_2;
………………………………………………..;
tip ekzemplyara_N;
tip metod_nomi_1 (parametrlar ro‘yxati) {
metod tanasi
}
tip metod_nomi_2 (parametrlar ro‘yxati) {
metod tanasi
}
……………………………………………………………….
tip metod_nomi_N (parametrlar ro‘yxati) {
metod tanasi
}
}

Klassni yangi bitta tip deb ham qarash mumkin, u yaratilgandan keyin shu tipga oid ob’yektlar yaratiladi. Keling endi, «netbeans«da biror klass yaratamiz, oldinlari biz proyekt hosil qilayotganda, «Sozdat glavnыy klass» punktidan belgilashni olib tashlayotgan edik, endi o‘z holicha qoldiramiz. Klass nomiga «dog» deb yozamiz.

klass_1

Barcha kommentariyalarni o‘chirib, dastur kodini quyidagi holga keltiramiz, bu yuqoridagi misolimizning dasturiy ko‘rinishi

package dog;
class kuchuk {
     int age;
     double weight;
     String name;
     String color;
 }
class Dog {
    public static void main(String[] args) {
          kuchuk Sharik = new kuchuk();
          kuchuk Bobik = new kuchuk();
          Sharik.age = 4;
          Sharik.weight = 9;
          Sharik.name = "Sharik";
          Sharik.color = "qora";

          Bobik.age = 7;
          Bobik.weight = 19;
          Bobik.name = "Bobik";
          Bobik.color = "oq";

          System.out.println("Birinchi kuchuk " + Sharik.age + " yosh");
          System.out.println("Ismi " + Sharik.name);
          System.out.println("Ogirligi " + Sharik.weight + " kg");
          System.out.println("Rangi " + Sharik.color);
          System.out.println("");
          System.out.println("Ikkinchi kuchuk " + Bobik.age + " yosh");
          System.out.println("Ismi " + Bobik.name);
          System.out.println("Ogirligi " + Bobik.weight + " kg");
          System.out.println("Rangi " + Bobik.color);
    }
}

1-qator. «Package» kalit so‘zi orqali «dog» nomli paket yaratildi. Paket haqida alohida maqola yozishga harakat qilaman. Hozir bu tushunchaga to‘xtalib o‘tmayman. Tushuncha hosil bo‘lishi uchun shuni aytishim mumkinki, paket bir xil ma’nodagi klasslar yig‘indisidir. E’tibor bergan bo‘lsangiz, bizning dasturda ikkita klass(2, 8 qatorlar) mavjud. Bu klasslar bitta paket ichida joylashishi lozim, oldingi darslarda faqat bitta klass ichida operatorlarni o‘rganganimiz uchun, paket yaratmadik.

2, 7 — qatorlar. «Kuchuk» nomli klass yaratdik. YUqorida aytib o‘tganimdek, klass yaratish, yangi bir tip yaratishdir. Keyinchalik bu tipga tegishli ob’yekt (ekzemplyar)lar yaratiladi.

3, 6 — qatorlar. Klassga tegishli o‘zgaruvchilar yaratildi, «age» o‘zgaruvchisi kuchuk yoshini saqlash uchun, «weight» o‘zgaruvchi uning og‘irligi uchun, «name» ismi va nihoyat «color» rangini saqlash uchun ishlatiladi.

E’tibor bergan bo‘lsangiz, «kuchuk» klassi faqat o‘zgaruvchilarni e’lon qildi, hech qanday amallarni bajarmadi. Bu klass keyin yaratiladigan ob’yektlar uchun shablon holos.

8 — qator. «Dog» nomli klass yaratildi. Bu klassda main() metodi(9-qator) mavjud. Oldingi darslardan ma’lumki «main()» metodi har bir dasturda bo‘lishi lozim. Dasturda bajariladigan opertorlar aynan shu metod ichida bo‘ladi. Qaysi klass ichida «main()» metodi bo‘lsa, o‘sha klass asosiy klass hisoblanadi, shu sababli misolda, «dog» klassi asosiy klassdir.

Dasturni kompilyatsiya qilganingizdan so‘ng, proyektni saqlagan adresingizda 2 ta fayl: kuchuk.class va dog.class hosil bo‘ladi. Demak, java dasturlash tilida har bir klass alohida fayl ko‘rinishida saqlanar ekan. Dasturni ishlatish uchun asosiy klass ishga tushiriladi xolos.

10, 11 — qatorlar. Bu yerda «kuchuk» nomli klassning ob’yektlari yaratilmoqda(«Sharik» va «Bobik«). Ob’yekt yaratishda bizga «new» kalit so‘zi yordam beradi. Uning sintaksisi.

klass_nomi ob’yekt_nomi = new klass_nomi;

Tushunarli bo‘lishi uchun, ob’yekt yaratishni ikki qismga ajratib yozish ham mumkin:

kuchuk Sharik;
Sharik = new kuchuk();

Dastlab, «Sharik» nomli o‘zgaruvchi e’lon qilindi, so‘ng bu o‘zgaruvchi «kuchuk» klassiga «sссылка» qilib ko‘rsatildi.

Yaratilgan ikkita ob’yekt(Sharik, Bobik) klassda e’lon qilingan o‘zgaruvchilarga ega. Bu o‘zgaruvchilar har bir ob’yekt uchun har xil qiymatlarni qabul qilish mumkin. O‘zgaruvchilarga qiymat berish uchun nuqta(.) belgisidan foydalaniladi.

12, 20 — qatorlar. Bu qatorlarda yaratilgan ob’yekt o‘zgaruvchilariga(age, weight, name, color) qiymatlar berildi. Qiymat berish sintaksisi:

Ob’yekt_nomi.o‘zgaruvchi_nomi = qiymat;

Oxirida barcha natijalar ekranga chiqarildi.

klass_2