Java bir kund



Download 1,09 Mb.
bet15/24
Sana30.09.2022
Hajmi1,09 Mb.
#850991
1   ...   11   12   13   14   15   16   17   18   ...   24
Bog'liq
Java быстрый старт (1)

Usul - bu qandaydir vazifani bajarish uchun kod blokidir .
Xodimlar sinfiga oddiy usul qo'shamiz . Eslatib o'tamiz, usul Staff sinfining ochilish va yopish jingalak qavslari orasiga joylashtirilishi kerak :

public void printMessage()


{
System.out.println("To'lovni hisoblash...");
}
116 7 -bob. Obyektga yo‘naltirilgan dasturlash

Usul quyidagicha e'lon qilinadi:

public void printMessage()


{
}

Usul deklaratsiyasi kirish darajasidan boshlanadi. Bu erda usul ommaviy (ommaviy) deb e'lon qilinadi, shuning uchun usul dasturning istalgan joyida mavjud (nafaqat Staff sinfida).


Keyin usulning qaytish turi ko'rsatiladi. Usul o'z vazifasini bajargandan so'ng ba'zi natijalarni qaytarishi mumkin .


Agar usul hech qanday natija bermasa, void kalit so'zi ishlatiladi
berilgan misol.

Undan keyin usulning nomi keladi ( bu misolda printMessage ).


Usul nomidan keyin qavslar () usul parametrlarini bildiradi.
Parametrlar - Belgilangan nomlar
o'z vazifasini bajarish uchun usulga uzatiladigan ma'lumotlar . Agar usul hech qanday ma'lumotga muhtoj bo'lmasa (bizning misolimizda bo'lgani kabi ), usul nomidan keyin bir juft bo'sh qavs qo'shing .
Usul e'lon qilingandan so'ng, biz bir juft jingalak qavsda
usul nima qilishini aniqlaymiz . Bu amalga oshirish deb ataladi . usuli. Bizning misolimizda printMessage() usuli oddiygina "To'lovni hisoblash..." qatorini chop etadi.
Aslida, printMessage() boshqa hech narsa qilmaydi.
Keling, murakkabroq usulga o'tamiz. Ikkinchi usul har bir ishchi uchun ish haqini hisoblab chiqadi va natijani qaytaradi.
7.2. O'z darslaringizni yozish 117
tat hisoblar. Quyidagi parchani sinfga qo'shing
Xodimlar:

public int accountPay()


{
printMessage();

int staffPay;


staffPay = soatlarIshlagan * soatlikRate;

agar (ishlagan soat > 0)


xodimlarni qaytarish to'lovi;

boshqa
}

qaytish -1;



Usul deklaratsiyasi:

public int accountPay()


{
}

int kalit so'zi usul int tipidagi qiymatni qaytarishini bildiradi .


Buyruq jingalak qavslar ichiga olingan.


printMessage();


Ushbu konstruktsiya printMes sage() usuliga chaqiruv deb ataladi . Dastur ushbu buyruqqa yetib borgach, u biz avval yozgan printMessage() usulini ishga tushiradi va qolgan accountPay() usulini bajarishdan oldin “Toÿlovni hisoblash...” qatorini chop etadi . Misol bir usulni boshqa usuldan qanday chaqirishni ko'rsatadi.


Keyin mahalliy o'zgaruvchan staffPay e'lon qilinadi, unga hourlyRate va hoursWorked shaxsiy maydonlarining mahsuloti tayinlanadi .

118 7 -bob. Obyektga yo‘naltirilgan dasturlash

Usul sinf ichida e'lon qilingan barcha maydonlarga kirishi mumkin. Bundan tashqari, u o'z o'zgaruvchilarini e'lon qilishi mumkin . Bunday o'zgaruvchilar mahalliy deb ataladi va faqat usul doirasida mavjud. Masalan, staffPay o'zgaruvchisi.
staffPay o'zgaruvchisini tayinlagandan so'ng, accountPay () usuli usul bilan qanday natijani qaytarish kerakligini aniqlash uchun if iborasidan foydalanadi.
Odatda, usul kamida bitta qaytarish bayonotini o'z ichiga oladi. Qaytish kalit so'zi usuldan natijani qaytarish uchun ishlatiladi . Usul bir nechta qaytarish bayonotlarini o'z ichiga olishi mumkin. Biroq, usulda qaytarish buyrug'i bajarilishi bilanoq , uning bajarilishi tugallanadi.

Bizning misolimizda, agar hoursWorked dan katta bo'lsa


nolga teng bo'lsa, dastur buyruqni bajaradi

xodimlarni qaytarish to'lovi;


va usuldan chiqing. Qaytish qiymati o'zgaruvchiga tayinlanishi mumkin. Tez orada buni qanday qilishni main() usulida ko'rasiz.


Boshqa tomondan, agar soat ishlagan 0 dan kichik yoki teng bo'lsa, dastur buyruqni bajaradi.
qaytish -1;

va usuldan chiqing.


Usul javobni qaytarishi shart bo'lmagan holatlar mavjud - u usuldan chiqish uchun qaytarish buyrug'idan foydalanadi . Kitobning oxirida loyihani ishlab chiqishni boshlaganimizda, bunday misol keltiriladi .
7.2. O'z darslaringizni yozish 119
Haddan tashqari yuk

Endi ortiqcha yuk tushunchasi bilan tanishamiz . Java-da (va boshqa ko'pgina tillarda) siz bir xil nomdagi ikkita usulni yaratishingiz mumkin, agar ular turli xil imzolarga ega bo'lsa. Bu xususiyat ortiqcha yuk deb ataladi . Usul imzosi - bu usul nomi va uning parametrlarining kombinatsiyasi.


AccountPay() usulidan keyin quyidagi usulni qo'shing :

public int accountPay(int bonus, int to'lov)


{
printMessage();
agar (ishlagan soat > 0)
qaytish soatlariIshlagan * soatlikRate + bonus + nafaqa;

boshqa
}

qaytish 0;



Birinchi usulning imzosi accountPay() , ikkinchi usulning imzosi esa accountPay(int bonus, int allowance) hisoblanadi.
Ikkinchi usul ikkita parametrni oladi: bonus va nafaqa. U ishlagan soatlar va soatlik stavkalar mahsulotiga parametrlarning qiymatlarini qo'shish orqali ishchining ish haqini hisoblab chiqadi . Bu misolda, hoursWorked * hourlyRate + bonus + grant natijasini saqlash uchun hech qanday mahalliy o'zgaruvchi ishlatilmagan . Dastur shunchaki natijani to'g'ridan-to'g'ri qaytaradi va bu juda
yaxshi. Ushbu usuldan qanday foydalanishni keyinroq tushuntiraman.



Oling-va
usullarini belgilang



Endi sinf uchun get va set usullarini yozamiz.
Xususan, usullar soatWorked maydonini maqsad qilib qo'yadi .

120 7 -bob. Obyektga yo‘naltirilgan dasturlash

Ishlagan soatlar maydoni shaxsiy deb e'lon qilinganini eslaysizmi ? Bu shuni anglatadiki, bu maydon Xodimlar sinfidan
tashqari hech qanday kod uchun mavjud bo'lmaydi. Biroq, ba'zilarida Ba'zi hollarda, bu soha boshqa sinflarni qiziqtirishi mumkin. Keyin boshqa sinflar qachon kiradigan set-
va get-metodlarini yozishingiz kerak
paxta maydonlari.

Bir qarashda bu qarama-qarshilikdek tuyulishi mumkin. Ilgari xususiy maydonlar boshqa sinflar uchun mavjud bo'lmasligi uchun kerakligi ta'kidlangan edi. Unda nega get- va set- methodlar bilan kirishni ochish kerak?


Asosiy sabablardan biri shundaki, olish va sozlash usullari shaxsiy maydonlarga kirishda boshqa sinflar nima qila olishini ko'proq nazorat qilishni ta'minlaydi. Ko'raylikchi,
qanday amalga oshirilgan.

Xodimlar sinfiga quyidagi to'plam usulini qo'shing :


ommaviy bekor qilish toÿplamiIshlagan vaqti(int soat)


{
agar (soat>0)
Ishlagan soat = soat;
boshqa
{
System.out.println("Xato: Ishlagan soatlar noldan kichik bo'lishi
mumkin emas"); System.out.println("Xato: HoursWorked yangilanmagan");

}
}

An'anaga ko'ra, to'plam usuli nomlari "to'plam" so'zidan keyin maydon nomidan iborat.


    1. O'z darslaringizni yozish 121

Yuqoridagi o'rnatilgan usul soatlar deb nomlangan parametrni oladi va
undan hoursWorked maydonining qiymatini o'rnatish uchun foydalanadi. Biroq, birinchi navbatda oddiy tekshirish amalga oshiriladi. Agar soatlar
qiymati noldan katta bo'lsa, u soatlar Ishlaganiga tayinlanadi . Aks holda, hourWorked ga hech qanday qiymat berilmaydi va uning o'rniga xato xabari ko'rsatiladi.

Misol uchun set usulidan foydalanishni ko'rsatadi


shaxsiy maydonga qanday qiymatlar berilishi mumkinligini nazorat qilish .
Belgilangan usullardan tashqari, shaxsiy maydon uchun get usulini ham yozishingiz mumkin . Xodimlar sinfiga quyidagi kodni qo'shing . An'anaga ko'ra, get usuli nomlari "olish" so'zidan keyin maydon nomidan iborat:

public int getHoursWorked()


{
qaytish soatlari Ishlagan;
}

Usul oddiygina hourWorked maydonining qiymatini qaytaradi.





      1. QURILGANLAR

Endi konstruktorlarni ko'rib chiqamiz.



Download 1,09 Mb.

Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   ...   24




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish