12-mavzu: Sinflar tuzilishi: atributlar, operatsiyalar, bog’lanishlar, umumiylashtirish, assotsiatsiyalar
Download 151.75 Kb. Pdf ko'rish
|
12-Sinflar tuzilishi
Parametrlarni o'tkazish usullari
Dasturlash tillaridagi protseduralar parametrlarga ega. Parametrlarning mavjudligi turli xil ma'lumotlarni qayta ishlash yoki hisoblash uchun bir xil protsedurani qayta-qayta qo'llash imkonini beradi. Ushbu xususiyatdan foydalanish uchun protseduraga qo'ng'iroq qilishda siz qandaydir tarzda ushbu qo'ng'iroqda kirish ma'lumotlarini qaerdan olish kerakligini va natijalarni qaerga qo'yish kerakligini belgilashingiz kerak. Buni belgilash mexanizmi parametrlarni o'tkazish usuli deb ataladi. Turli tillar va dasturlash tizimlari protseduralar va funktsiyalarga parametrlarni o'tkazishning turli (ba'zan juda murakkab) usullaridan foydalanadi. Biz bu erda deyarli barcha dasturlash tillari va tizimlarida u yoki bu shaklda qo'llaniladigan ikkita eng keng tarqalganini tasvirlab beramiz: parametrlarni mos yozuvlar va qiymat bo'yicha o'tkazish. Agar o'zgaruvchi52 mos yozuvlar bo'yicha protseduraga uzatilsa, u holda ushbu o'zgaruvchining xotiradagi manzili protseduraga uzatiladi. Shu bilan birga, bu sodir bo'ladi Dasturlash tizimlari odatda konstantalarni havola orqali uzatishni taqiqlaydi. Buning sababi shundaki, protsedura doimiy qiymatni o'zgartirishi va shu bilan keyingi hisob-kitoblar jarayonida xatolikka olib kelishi mumkin. Protseduraning rasmiy parametrini va o'tgan haqiqiy argumentni aniqlash. Shunday qilib, chaqirilgan protsedura argumentning qiymatini o'zgartirib, unga uzatilgan o'zgaruvchining qiymatini o'zgartiradi. Ushbu uzatish usuli chiqish parametrlari uchun javob beradi. Agar o'zgaruvchi (yoki doimiy) qiymat bo'yicha uzatilsa, kompilyator ushbu o'zgaruvchining vaqtinchalik nusxasini yaratadi va aynan shu nusxa o'zgaruvchining manzili protseduraga uzatiladi. Shunday qilib, chaqirilgan protsedura argumentning qiymatini o'zgartirib, protsedura tugagandan so'ng yo'q qilinadigan nusxa o'zgaruvchining qiymatini o'zgartiradi (lekin o'zgaruvchining o'zi emas). Ushbu o'tish usuli kirish parametrlari uchun mos keladi. UMLda parametr o'tish yo'nalishi ma'lum bir o'tish mexanizmini ko'rsatmasdan parametrlarning semantik maqsadini tavsiflaydi. Modelda ko'rsatilgan parametrlarni uzatish yo'nalishlarini qanday talqin qilish kerakligi ishlatiladigan dasturlash tizimiga bog'liq. Etkazish yo'nalishining mumkin bo'lgan qiymatlari jadvalda keltirilgan. 3.4. Kirish parametri - argument operatsiyada ishlatiladigan, lekin o'zgartirilmagan qiymat bo'lishi kerak Chiqish parametri - argument operatsiya amalga oshiriladigan do'kon bo'lishi kerak qiymatini qo'yadi Kirish va chiqish parametri - argument qiymatni o'z ichiga olgan do'kon bo'lishi kerak. Amaliyot o'tkazilgan argument qiymatidan foydalanadi va natijani saqlaydi Amaliyot tomonidan qaytarilgan qiymat. Hech qanday dalil talab qilinmaydi Operatsiya parametrining turi, shuningdek operatsiya tomonidan qaytariladigan qiymat turi har qanday o'rnatilgan turdagi yoki modelda belgilangan sinf bo'lishi mumkin. Hammasi birgalikda (operatsiya nomi, parametrlari va natija turi) odatda imzo deb ataladi . Standart imzo operatsiya nomini, shuningdek parametrlarning soni, tartibi va turlarini (ya'ni, parametrlar o'tkaziladigan yo'nalish va ularning nomlari, shuningdek, natija turini o'z ichiga olmaydi) bo'lishini taklif qiladi. imzoda). Ammo bu semantikaning o'zgaruvchan nuqtasi - imzoning boshqa kontseptsiyasi ma'lum bir vositada amalga oshirilishi mumkin. Agar imzolar boshqacha bo'lsa, unda operatsiyalar boshqacha (ismlar bir xil bo'lsa ham). Bitta sinfda bir xil imzo bilan ikkita operatsiya bo'lishi mumkin emas - model nomuvofiq hisoblanadi. Agar bir xil imzo bilan operatsiya kichik sinfda aniqlangan bo'lsa, unda ikkita holat mumkin. Agar kichik sinfdagi amal tavsifi aynan bir xil bo'lsa yoki u izchil kengaytma bo'lsa (masalan, sinf natija turini ko'rsatmagan, lekin kichik sinf ko'rsatsa), u bir xil amalning takroriy tavsifidir. . Agar kichik sinfdagi bir xil imzo bilan operatsiya tavsifi sinfdagi tavsifga zid bo'lsa (masalan, parametrlarni o'tkazishning turli yo'nalishlari aniq ko'rsatilgan), u holda model mos kelmaydigan hisoblanadi. Operatsiya ikkita muhim xususiyatga ega, ular mulk ro'yxatida sifatida ko'rsatilgan nomli qiymatlar. Birinchidan, bu parallellik - bu operatsiyaning bir vaqtning o'zida (parallel) chaqiruvining semantikasini aniqlaydigan xususiyat. Faqat bitta nazorat chizig'i mavjud bo'lgan ilovalarda parallel qo'ng'iroqlarni amalga oshirish mumkin emas. Haqiqatan ham, agar operatsiya chaqirilsa, u holda dasturning bajarilishi chaqirilgan operatsiyani bajarish tugagunga qadar chaqiruv nuqtasida to'xtatiladi. Bir ipli ilovalarda boshqaruv istalgan vaqtda dasturning ma'lum bir nuqtasida joylashgan bo'lib, aynan bitta maxsus operatsiya bajariladi. Rekursiv qo'ng'iroq (ya'ni, operatsiyani o'z ichidan chaqirish) bir vaqtning o'zida hisoblanmaydi, chunki rekursiv qo'ng'iroq odatdagidek operatsiyani bajarishni to'xtatib turadi va shuning uchun har doim rekursiv operatsiyaning faqat bitta nusxasi bajariladi. Boshqarishning bir nechta iplari mavjud bo'lgan ilovalarda bu shunday emas. Bunday holda, operatsiyani bitta ipdan chaqirish mumkin va uning bajarilishi hali tugamagan bo'lsa, boshqa ipdan chaqiriladi. Paradoksallik xususiyatining qiymati bu holatda nima bo'lishini belgilaydi. Mumkin variantlar va ularning tavsiflari jadvalda keltirilgan. Tavsif Operatsiya parallel chaqiruvga ruxsat bermaydi (qayta kiritilmaydi). Agar parallel qo'ng'iroq sodir bo'lsa, tizimning keyingi harakati aniqlanmagan. Bir vaqtning o'zida qo'ng'iroqlarga ruxsat beriladi, lekin ulardan faqat bittasi amalga oshiriladi -qolganlari bloklanadi va ularning bajarilishi kechiktiriladi. Operatsiya o'zboshimchalik bilan parallel qo'ng'iroqlar soniga imkon beradi va to'g'ri bajarilishini kafolatlaydi. Bunday operatsiyalar qayta kiritiladigan deb ataladi. Ikkinchidan, operatsiya isQuery xususiyatiga ega , uning qiymati operatsiyaning yon ta'siri bor yoki yo'qligini ko'rsatadi. Agar ushbu xususiyatning qiymati rost bo'lsa, u holda operatsiyaning bajarilishi tizim holatini o'zgartirmaydi - faqat operatsiya Aks holda, ya'ni qachon. qo'ng'iroq nuqtasiga qaytgan qiymatlarni hisoblab chiqadi. false , operatsiya tizim holatini o'zgartiradi: atributlarga yangi qiymatlar beradi, ob'ektlarni yaratadi yoki yo'q qiladi va hokazo. Odatiy bo'lib, operatsiya { isQuery=false} xususiyatiga ega. Shuning uchun, agar siz ushbu operatsiyani nojo'ya ta'sirlarsiz funksiya ekanligini ko'rsatishingiz kerak bo'lsa, unda {isQuery} ni yozish kifoya . Xodimlar bo'limi axborot tizimining Person sinfining mumkin bo'lgan operatsiyalari tavsiflarining misollarini ko'rib chiqing (3.7-jadval). Bunday semantika ikkita yoki undan ko'p bo'lgan o'lik (yoki o'lik) holatini keltirib chiqarishi mumkin ko'proq jarayonlar bir-birini to'sib qo'yadi va hech biri bajarishni davom ettira olmaydi. Bunday operatsiyalar an'anaviy ravishda funktsiyalar deb ataladi. Misol harakat +ko‘chirish(dan, ichida) Tushuntirish Minimal mumkin bo'lgan tavsif - faqat operatsiya nomi ko'rsatilgan Operatsiyaning ko'rinishi, uzatish yo'nalishlari va parametr nomlari ko'rsatilgan +ko'chirish(dan: Dpt, ichida: Dpt) +getName() : {isQuery} satri +setPwd(pwdda: String = "parol") Qiymat ko'rsatilgan protsedura Imzoning batafsil tavsifi: operatsiyaning ko'rinishi, uzatish yo'nalishi, parametrlarning nomlari va turlari ko'rsatilgan. Atribut qiymatini qaytaradigan va hech qanday nojo'ya ta'sirga ega bo'lmagan funksiya standart argument Download 151.75 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling