2-qator. Qism dastur e’lon qilindi.
static — statik qism dastur(dinamik(o‘zgaruvchan emas)).
void — hech qanday qiymat qaytarmaydi, demak protsedura.
Count — qism dastur nomi.
int dan, int gacha — qism dastur parametrlari, ya’ni qism dasturda ishlatiladigan o‘zgaruvchilar.
Shundan so‘ng, qism dastur tanasi ochildi. Bu yerda sikl ishlatildi, bu sikl «dan» va «gacha» o‘zgaruvchilar orqalig‘idagi sonlarni ekranga chiqaradi. Bu o‘zgaruvchilar qism dastur parametrlari bo‘lib, uning qiymatlari asosiy dasturda beriladi.
Endi, biror natija qaytaradigan qism dasturga misol ko‘ramiz,
1
2
3
4
5
6
7
8
9
10
11
12
13
class test {
static int Compare(double a, double b)
{
int Res = 0;
if(a > b)
Res = 1;
if(a < b)
Res = -1;
return Res;
}
public static void main(String args[]) {
}}
Qism dastur «int» tipidagi qiymatni qaytaradi(static int), demak bu qism dastur funksiya hisoblanadi, «a» va «b» nomli o‘zgaruvchilari mavjud. Qism dastur tanasida, faqat shu qism dasturda ishlatish mumkin bo‘lgan «Res» nomli o‘zgaruvchi e’lon qilindi(hattoki bu o‘zgaruvchi main() metodida ham ko‘rinmaydi). So‘ng «a» va «b» o‘zgaruvchilar solishtirildi, agar «a» katta bo‘lsa, Res=1, agar «a» kichik bo‘lsa, Res=-1 qiymatlarni qabul qiladi.
«Return» kalit so‘zi orqali, qism dastur natijasini qaytarish mumkin. Qaytarilayotgan o‘zgaruvchi(Res) tipi, qism dastur tipi bilan bir hil bo‘lishi lozim(int).
Bundan ko‘rinib turibdiki, qism dastur tipi parametrlar tipiga bog‘liq emas, faqat qaytarilayotgan o‘zgaruvchi tipiga bog‘liq.
Agar yuqoridagi kodlarni ishga tushirsangiz, hech qanday natija olaolmaysiz. Natija olish uchun, yoki qism dasturni ishlatish uchun, uni asosiy metodda(main()) chaqirish lozim.
Chaqirish, qism dastur nomi va qism dasturda berilgan parametrlar soni va tipiga mos holda qiymatlar berish orqali amalga oshiriladi. Qism dasturni parametr yoki biror o‘zgaruvchiga o‘zlashtirish orqali chaqirish mumkin. Quyida, yuqoridagi ikki qism dasturni asosiy dasturda chaqiramiz.
class test {
//Dastlabki qism dasturni e'lon qilish
static void Count(int dan, int gacha)
{
for(int i = dan; i<=gacha; i++) System.out.println(i); } //ikkinchi qism dasturni e'lon qilish static int Compare(double a, double b) { int Res = 0; if(a > b)
Res = 1;
if(a < b)
Res = -1;
return Res;
}
// Asosiy dastur, dasturni ishlashi shu yerdan boshlanadi
public static void main(String[] args) {
System.out.println("Count metodini, 1 va 5 qiymati bilan chaqirish");
Count(1, 5);
System.out.println("Compare metodini chaqirish");
int Res2 = Compare(2, 3);
System.out.println(Res2);
System.out.println("Count metodini, 5 va 15 qiymati bilan chaqirish");
Count(5, 15);
}
}
Dastlab, ikki qism dastur e’lon qilindi va ularning tanasida qilinishi kerak bo‘lgan amallar bajarildi(biri funksiya, biri protsedura). Shundan so‘ng, asosiy dasturda, bu qism dasturlar ma’lum bir parametrlar bilan chaqirildi. ko‘rib turganingizdek, qism dasturlarni chaqirish, uning nomi va qiymati bilan amalga oshirilar ekan.
«Compare» qism dasturini chaqirganda, uning qiymati(bu qism dastur Res nomli o‘zgaruvchi qiymatini qaytaradi), asosiy dasturda yaratilgan «Res2» nomli o‘zgaruvchiga berildi.
YUqoridagi dasturning natijasi:
Qism dastur va asosiy dasturdagi o‘zgaruvchilarni farqlash uchun, qism dastur o‘zgaruvchilarini «формальные параметры«, asosiy dasturdagi o‘zgaruvchilarni «фактические параметры» deb atash odatga kirgan.
Agar, asosiy dasturdagi biror o‘zgaruvchini, qism dastur parametri sifatida bersangiz, bu parametr qism dasturda o‘zgartirib yuborilsa ham, asosiy dasturdagi o‘zgaruvchi o‘zgarmaydi.
1
2
3
4
5
6
7
8
9
10
11
12
class test {
static int Count(int aa)
{
int bb = aa*2;
return bb;
}
public static void main(String[] args) {
int aa2 = 5;
System.out.println(Count(aa2));
System.out.println(aa2);
}
}
Dasturda, asosiy dasturdagi»aa2» o‘zgaruvchi, qism dasturda o‘zgartirildi va asosiy dasturga qaytarib berildi. Shundan so‘ng, ikkala hol ham ekranga chiqarildi va asosiy dasturdagi o‘zgaruvchi o‘zining «5» qiymatini saqlab qoldi.
Har bir qism dastur ichidagi o‘zgaruvchi faqat shu qism dastur uchundir. Asosiy dasturda yoki boshqa qism dasturda bu o‘zgaruvchini ishlatib bo‘lmaydi.
static void Proc1()
{
System.out.println(b);
}
static void Proc2()
{
double b = 1;
}
«Proc1» nomli qism dasturda, «b» nomli o‘zgaruvchi yo‘q. Bu kodni dasturga kiritsak, xatolik haqida ma’lumot olamiz, agar bu qism dasturni asosiy dasturda chaqirib ishlatsak(chaqirmasak, bu qism dasturga murojaat bo‘lmaydi).