Kirish darajasi - Access level

Yilda Kompyuter fanlari va kompyuter dasturlash, kirish darajasi a-ga berilgan ruxsatnomalar yoki cheklovlar to'plamini bildiradi ma'lumotlar turi. Kirish darajasini pasaytirish cheklashning samarali usuli hisoblanadi qobiliyatsiz rejimlari, disk raskadrovka vaqt va tizimning umumiy murakkabligi. O'zgaruvchan modifikatsiyani faqat sinf uchun interfeys ichida aniqlangan usullar bilan cheklaydi. Shunday qilib, u ko'plab asosiy narsalarga kiritilgan dasturiy ta'minotni loyihalash naqshlari. Umuman olganda, berilgan ob'ekt etarli kirish darajasiga ega bo'lmasdan hech qanday funktsiya tomonidan yaratilishi, o'qilishi, yangilanishi yoki o'chirilishi mumkin emas.

Ikkala eng keng tarqalgan kirish darajasi jamoat va xususiy, tegishlicha belgilaydigan; dasturning butun doirasi bo'yicha ruxsatnoma yoki faqat tegishli sinf ichida ruxsat. Uchinchisi, himoyalangan, tegishli sinfning barcha kichik sinflariga ruxsatlarni kengaytiradi. Odatda Java-da kirish darajalari modifikatorlari ishlatiladi [1] shuningdek C # ni taqdim etadi ichki Daraja.[2] C ++ da a o'rtasidagi yagona farq tuzilmaviy va a sinf standart kirish darajasi, ya'ni xususiy sinflar uchun va jamoat tuzilmalar uchun.[3]

Foydani ko'rsatish uchun: dasturning istalgan qismidan foydalanish mumkin bo'lgan umumiy o'zgaruvchini ko'rib chiqing. Agar xato yuz bersa, aybdor dasturning istalgan qismida, shu jumladan turli xil sub-qaramliklarda bo'lishi mumkin. Katta kod bazasida bu minglab potentsial manbalarga olib keladi. Shu bilan bir qatorda, xususiy o'zgaruvchini ko'rib chiqing. Kirish cheklovlari tufayli uning qiymatidagi barcha o'zgarishlar sinf ichida belgilangan funktsiyalar orqali sodir bo'lishi kerak. Shuning uchun xato tizimli ravishda sinf ichida joylashgan. Har bir sinf uchun ko'pincha faqat bitta manba fayl mavjud, ya'ni disk raskadrovka faqat bitta faylni baholashni talab qiladi. Etarli modullik va minimal kirish darajasi, katta kod bazalari murakkablik bilan bog'liq ko'plab qiyinchiliklardan qochishi mumkin.[4]

Misol: Bank balansi klassi

Java Coffee Break savol-javobidan olindi [5]

public class bank_balance {public String egasi; xususiy int balansi; public bank_balance (string nomi, int dollar) {egasi = ismi; agar (dollar> = 0) qoldiq = dollar; aks holda dollar = 0; } public int getBalance () {return balansi; } public void setBalance (int dollar) {if (dollar> = 0) qoldiq = dollar; aks holda dollar = 0; }}

Bu erda imperativ o'zgaruvchi muvozanat a deb belgilanadi xususiy int. Bu boshqa sinflarni, usullarni va funktsiyalarni o'zgarmaydigan balansni tasodifan ustiga yozib bo'lmasligini ta'minlaydi. Buning o'rniga ular sinf uchun interfeysga kirishlari kerak bank_balansi, uning usullari muvozanat 0 dan pastga tushmasligini ta'minlaydi.

Adabiyotlar

  1. ^ "Sinf a'zolariga kirishni boshqarish (Java ™ darsliklari> Java tilini o'rganish> Sinflar va ob'ektlar)". docs.oracle.com. Olingan 2016-11-22.
  2. ^ "Kirish modifikatorlari (C # ma'lumotnomasi)". msdn.microsoft.com. Olingan 2016-11-22.
  3. ^ "Do'stlik va meros - C ++ darsliklari". www.cplusplus.com. Olingan 2016-11-23.
  4. ^ "Bizga nima uchun xususiy o'zgaruvchilar kerak?". softwareengineering.stackexchange.com. Olingan 2016-11-22.
  5. ^ http://www.javacoffeebreak.com/faq/faq0002.html