Buxoro davlat universiteti axborot texnologiyalari fakulteti



Download 38,87 Kb.
bet4/7
Sana14.07.2022
Hajmi38,87 Kb.
#799933
1   2   3   4   5   6   7
Bog'liq
o\'RINOV ELDOR

public abstract class Mashina {




  • abstract void madeli();




  • abstract void mashinaTuri();




  • abstract void uzunligi();




  • abstract void rangi();


  • }





  • public class Malibu extends Mashina{


  • @Override






  • void madeli() {




  • System.out.println("Chevrolet");


  • }



  • @Override






  • void mashinaTuri() {




  • System.out.println("Malibu");


  • }



  • @Override






  • void uzunligi() {




  • System.out.println("4.7 metr");


  • }



  • @Override






  • void rangi() {




  • System.out.println("Qora");


  • }





  • public static void main(String[] args) {


  • Mashina mashina = new Malibu();




  • mashina.madeli();




  • mashina.mashinaTuri();




  • mashina.uzunligi();




  • mashina.rangi();




  • }



  • }



    Natija :

    Chevrolet

    Malibu

    4.7 metr

    Qora
    Yuqoridagi misolda Malibu klassi abstrakt funksiyalari (modeli, mashinaTuri, uzunligi, rangi) bor bo'lgan Mashina abstarkt klassidan nasl olyapti va uning abstrakt klassi tanasini realizatsiya(Override) qilayapti.

    Amaliyotda abstrakt klass bir nechta klasslar uchun ota klass vazifasini bajaradi va abstrakt funksiyalar turli bola klasslarda turlicha realizatsiya qilinadi.

    Shuningdek abstrakt klass konstruktor, tanasi bor funksiya, ma'lumotlar va hattoki main() funksiyaga ega bo'lishi mumkin. Quyidagi misolga qarang:

    Esda tuting: Agar klass tarkibida bitta bo'lsa ham abstarkt funksiya mavjud bo'lsa, klass ham abstract bo'lishi kerak.

    Esda tuting: Agar biror klass abstrakt klassdan voris olsa, uning barcha abstrakt funksiyalarini realizatsiya qilishi kerak yoki o'zi ham abstrakt klass bo'lishi kerak.

    @tuit_online kanali sizlar uchun maxsus...
    21-dars - Javada interfeys
    Javada interfeyslar orqali to'liq abstraktsiyani tashkillashtirish mumkin. Interfeys tarkibida funksiyalarning faqat nomlari bo'lishi mumkin, ularning tanasi bo'lishi mumkin emas(Java 8 dan boshlab default funksiyalarga funksiyaning bajarilish qismi yozilishi qo'shildi). Shuningdek, Interfeys tarkibida ma'lumotlar bo'lishi ham mumkin.

    Interfeyslarda o'zgaruvchilar e'lon qilinmaydi unda faqat o'zgarmas qiymatlar –final qiymatlar e'lon qilinadi. Interfeysga bitta misol keltirsak.




    Source code




    • public interface Dasta {




    • void ishlatilishSohasi();




    • void tayorlanganMatirial();




    • void size();


    • }

    Dasta nomli interfeys yaratildi, unda ishlatilishSohasi(), tayorlanganMatirial(), size() nomli funksiyalari bor.


    Source code




    • public class Pichoq implements Dasta{
    • @Override




    • public void ishlatilishSohasi() {


    • System.out.println("Pichoq uchun");
    • }

    • @Override



    • public void tayorlanganMatirial() {


    • System.out.println("Yog'och");
    • }

    • @Override



    • public void size() {


    • System.out.println("15 sm");
    • }



    • public static void main(String[] args) {
    • Pichoq pichoq = new Pichoq();


    • pichoq.ishlatilishSohasi();


    • pichoq.tayorlanganMatirial();


    • pichoq.size();


    • }

    • }


    Ko'rib turganingizdek, klass yaratildi va Dasta interfeysidan (implement olindi) foydalanildi. Bu holatda dasta barcha dastasi bor ob’yektlar uchun umumiydir.



    default funksiyaga misol:


    Source code




    • interface Formula {


    • double calculate(int a);


    • default double sqrt(int a) {


    • return Math.sqrt(a);
    • }

    • }

    • Formula formula = new Formula() {


    • @Override




    • public double calculate(int a) {


    • return sqrt(a * 100);
    • }

    • };

    • formula.calculate(100); // 100.0


    • formula.sqrt(16);


    Esda tuting: Java kompilyatori interfeys tarkibidagi funksiyalarga public va abstract kalit so’zlarni, interfeys tarkibidagi ma’lumotlarga esa public, static va final kalit so’zlarni qo’shadi.


    Agar faktorial funksiyasiga n>0 qiymat berilsa, quyidagi holat ro’y beradi: shart operatorining else shoxidagi qiymati (n qiymati) stekda eslab qolinadi. Noma’lumlarni hisoblash uchun shu funksiyaning o’zi «oldingi» qiymat (n-1 qiymati) bilan bilan chaqiriladi. O‘z navbatida, bu qiymat ham eslab qolinadi (stekka joylanadi) va yana funksiya chaqiriladi va hakoza. Funksiya n=0 qiymat bilan chaqirilganida if operatorining sharti ()!n rost bo‘ladi va «return 1;» amali bajarilib, ayni shu chaqirish bo‘yicha 1 qiymati qaytariladi, Shundan keyin «teskari» jarayon boshlanadi - stekda saqlangan qiymatlar ketma-ket olinadi va ko‘paytiriladi: oxirgi qiymat aniqlangandan keyin (1), u undan oldingi saqlangan qiymatga 1 qiymatiga ko‘paytirib F(1) qiymati hisoblanadi, bu qiymat 2 qiymatiga ko‘paytirish bilan F(2) topiladi va hakoza. Jarayon F(n) qiymatini hisoblashgacha «ko‘tarilib» boradi. Bu jarayonni, n=4 uchun faktorial hisoblash sxemasini 5.2-rasmda ko‘rish mumkin:





    F(4)=4*F(3)





    F(4)=4*F(3)





    F(4)=4*F(3)





    F(4)=4*F(3)





    F(4)=4*6




    F(3)=3*F(2)





    F(3)=3*F(2)





    F(3)=3*F(2)





    F(3)=3*2






    F(2)=2*F(1)





    F(2)=2*F(1)





    F(2)=2*1






    F(1)=1*F(0)





    F(1)=1*1






    F(0)=1



    5.2-rasm. 4! Hisoblash sxemasi

    Rekursiv funksiyalarni to‘g‘ri amal qilishi uchun rekursiv chaqirishlarning to‘xtash sharti bo‘lishi kerak. Aks holda rekursiya to‘xtamasligi va o‘z navbatida funksiya ishi tugamasligi mumkin. Faktorial hisoblashida rekursiv tushishlarning to‘xtash sharti funksiya parametri n=0 bo‘lishidir (shart operatorining rost shoxi).

    Har bir rekursiv murojaat qo‘shimcha xotira talab qiladi – funksiyalarning lokal obyektlari (o‘zgaruvchilari) uchun har bir murojaatda stekdan yangidan joy ajratiladi. Masalan, rekursiv funksiyaga 100 marta murojaat bo‘lsa, jami 100 lokal obyektlarning majmuasi uchun joy ajratiladi. Ayrim hollarda, juda ko‘p rekursiya bo‘lganda, stek o‘lchami cheklanganligi sababli (real rejimda 64Kb o‘lchamgacha) u to‘lib ketishi mumkin va bu holatda programma o‘z ishini «Stek to‘lib ketdi» xabari bilan to‘xtadi.

    Quyida, rekursiya bilan samarali yechiladigan «Xanoy minorasi» masalasini ko‘raylik.

    Masala. Uchta A, B, C qoziq va n-ta har xil o‘lchamli xalqalar mavjud. Xalqalarni o‘lchamlari o‘sish tartibida 1 dan n gacha tartiblangan. Boshda barcha xalqalar A qoziqqa 5.3a –rasmdagidek joylashtirilgan. A qoziqdagi barcha xalqalarni B qoziqqa yordamchi C qoziqdan foydalangan holda, quyidagi qoidalarga amal qilgan holda o‘tkazish talab etiladi: xalqalarni bittadan ko‘chirish kerak va katta o‘lchamli xalqani kichik o‘lchamli xalqa ustiga qo‘yish mumkin emas.





    Download 38,87 Kb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©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