Oldingi maqolamizda(Dars №22) klass, klasslar asosida yaratiladigan ob’yektlar, ularga qiymat berish, klass ichidagi o‘zgaruvchilar haqida gaplashib o‘tgan edik. Agar tushunarsiz bo‘lgan bo‘lsa, pochtaga xat yozing yoki kommentariyada o‘z muammoingizni qoldiring, qo‘ldan kelgancha yordamlashaman.

Biroz esga oladigan bo‘lsak, klass bu shablon bo‘lib, shu shablon asosida ob’yektlar yaratiladi. Klass ichida o‘zgaruvchilar, ma’lum bir vazifalarni bajaradigan metodlar yaratish mumkin. O‘zgaruvchilarni yaratishni ko‘rib o‘tdik, endi navbat metodlarga. Metod yaratishning sintaksisi quyidagicha:

Tip metod_nomi(parametrlar ro‘yxati)
{
metod tanasi
}

Tip — bu metod qaytaradigan tip hisoblanadi, agar hech qanday tip qaytarilmasa, tip o‘rnida «void» kalit so‘zi bo‘ladi.

Metod nomi — dasturchi tomonidan o‘ylab topilgan va maxsus belgilardan farqlanuvchi nom.

Parametrlar ro‘yxati — metod ishlatadigan parametrlar. Ular vergul(,) orqali ajratiladi va ketma-ketligi ahamiyatga ega. Ba’zi hollarda parametrlar umuman bo‘lmasligi ham mumkin, unda qavsning o‘zi yoziladi holos.

Endi misol ko‘ramiz, hajm hisoblaydigan dastur tuzamiz.

package dog;
class Cube {
  double width;
  double  height;
  double  depth;
void volume() {
  System.out.print("Ҳажм  ");
  System.out.println(width * height * depth);
}
}
class Dog {
public  static  void main(String  args[]) {
 Cube myCube1  =  new Cube();
 Cube myCube2  =  new Cube();
    myCube1.width  =  10;
    myCube1.height  =  20;
    myCube1.depth  =  30;
    myCube2.width  =  5;
    myCube2.height  =  10;
    myCube2.depth  =  15;
    myCube1.volume();
    myCube2.volume();
}
}

«Cube» nomli klass yaratildi, klass tanasida o‘zgaruvchilar e’lon qilindi(o‘zgaruvchi ruxsatlari keyingi maqolalarda). Shundan so‘ng metod e’lon qilindi(6-qator). «Void» demak bu metod hech qanday tip qaytarmaydi. Metod nomi «volume» va uning umuman parametri yo‘q. Metod bajaradigan vazifa, ekranga «Ҳажм» degan so‘zni chiqaradi va klassda e’lon qilingan 3 ta o‘zgaruvchini ko‘paytirib, natijani chiqarish. 3 ta o‘zgaruvchi ob’yekt yaratilgandan so‘ng, qiymatlarni oladi.

Dasturni ishga tushirganingizdan so‘ng, «main()» metodi ishga tushadi va 13, 14 -chi qatorlar ishlaydi. Bu qatorlarda, «Cube» klassiga tegishli yangi ob’yektlar(myCube1, myCube2) hosil qilindi. So‘ng, har bir ob’yektga, klassda yaratilgan o‘zgaruvchilari uchun qiymatlar berildi(15-20 qatorlar).

21,22-qatorlarda, «Cube» klassidagi «volume» nomli metod chaqirildi, shu paytda kompilyator berilgan metodni «Cube» nomli klassdan qidiradi va topib, shu metodni ishga tushiradi. Bu metod berilgan uchta o‘zgaruvchini ko‘paytmasini hisoblab, ekranga chiqaradi.

metod_1

Demak, metod oddiy protsedura ekan holos, dastlab asosiy dastur kodi ishlaydi, keyin qayerdadir bu metod chaqiriladi, boshqaruv o‘sha metodga beriladi, metod o‘z ishini bajaradi va yana boshqaruvni asosiy dasturga beradi.

YUqoridagi dasturni metod yaratmasdan ham tuzish mumkin, bunda kod biroz ko‘proq bo‘ladi, metod chaqirgan qator o‘rniga quyidagilarni yozib, ko‘paytmani hisoblash mumkin.

System.out.println(myCube1.width * myCube1.height * myCube1.depth);
System.out.println(myCube2.width * myCube2.height * myCube2.depth);

YUqorida aytib o‘tganimdek, metodlar biror parametrlarni ham qabul qilishi mumkin.

package dog;
class Cube {
int strong(int a) {
int sum=a*a*a;
    return sum;
}
}
class Dog {
public  static  void main(String  args[]) {
 Cube cube1 = new  Cube();
    System.out.println(cube1.strong(2));
}
}

«Cube» klassining «strong» nomli metodi «int» tipini qaytaradi, shuning uchun «int» tipli «sum» o‘zgaruvchi «return» kalit so‘zi orqali metodning qaytaruvchi parametri shaklida berildi(return sum).

Metod chaqirilayotganda, metodning «a» nomli parametri mavjud, shuning uchun «a» o‘zgaruvchiga biror «int» tipli qiymat berildi(cube1.strong(2)). Metod shu qiymatni olib, o‘z ishini boshlaydi va natijani «sum» o‘zgaruvchisi sifatida qaytardi va asosiy menyuda bu o‘zgaruvchi ekranga chiqarildi.

metod_2

Istalgancha ob’yekt yaratib, istalgancha metodni chaqirib ishlatish mumkin. Bitta ob’yekt uchun, bir necha marotaba metodni chaqirish ham mumkin.