Kotlin visibility modifiers
Ikromjonov Ma'rufjon
Kotlin dasturlash tilida ham visibity modifiers tushunchasi mavjud bo'lib ular bizga dasturimizda biz yaratgan element(bu yerda class/interface/funksiya/class maydonlari va hakazolar nazarda tutilgan) lardan dasturimizning boshqa ixtiyoriy qismidan foydalanish, Class tarkibida uning obyektiga ko'rinadigan yoki ko'rinmaydigan elementlar yozish faqat bitta fayl ichida foydalanish uchun yozilgan elementlar shu kabi imkoniyatlarni beradi. Men bu maqolamda aynan shu Kotlin visibility modifierslar haqida, Java va Kotlinda ularning bir xil va farqli tomonlari haqida aytib o'tmoqchiman.
Visibility Modifiers (Ko'rinishni o'zgartiruvchilar)
Bu elementlarimizning boshqa elementlar tomonidan foydalanish huquqlarini aniqlaydi, bu kodning turli elementlari uchun turli xil bo'ladi, quyida shular haqida gaplashamiz.
Public Visibility
Eng ko'p foydalanidigan modifikatordir. Bu modifikatorda elementdan foydalanishda hech qanday cheklov yo'q. Javadan farqli o'laroq, Kotlinda elementni public deb e'lon qilishning hojati yo'q, chunki u default modifikator bo'lgani uchun boshqa modifikator e'lon qilmasak default public bo'ladi, ishlatilishi xuddi java bilan bir xildir.
class Example {
val i = 1
fun doSomething() { }
}
Class public bo'lib kodlarni dasturni boshqa istalgan joyidan foydalanishimiz mumkin, "val i" va "fun doSomething ()" hamma uchun public.
Private Visibility
Bu modifikator publicga qarama - qarshi bo'lib u bilan e'lon qilingan elementga foydalanishda hech qanday ruxsatimiz yo'q. Kotlinda, bu faqat bazi doirada e'lon qilingan kod undan foydalana olish huquqiga egaligini anglatadi. Bu Java-dan tubdan farq qiladi, chunki Kotlin bitta faylda bir nechta yuqori darajali deklaratsiyalarni e'lon qilishga imkon beradi va private elementga o'sha fayldagi boshqa hamma elementlar foydalanish huquqiga ega bo'ladi. Boshqa qoidalar bir xil.
private class Example {
private val i = 1
private fun doSomething() { }
}
"val i" va "fun doSomething ()" faqat shu class tarkibida foydalanish mumkin ular shu class obyektlariga ham ko'rinmaydi.
Protected Visibility
Protected modifikator class tarkibidagi maydonlarga berishimiz mumkin, undan biz boshqa o'rinda foydalana olmaymiz. agar class open bo'lmasa uni private modifikatordan farqi yo'q ammo Java va Kotlinda undan foydalanishning faqrlari bor.
Masalan. Javada quyidagi kodlar ishlaydi.
public class Main {
public static void main(String[] args) {
Information i = new Information();
i.message = "Hello world!";
i.show();
}
}
class Information{
protected String message;
protected void show(){
System.out.println(message);
}
}
Lekin xuddi shu kod Kotlinda boshqacha bo'ladi, yani ob degan Info class obyektiga uni tarkibidagi protected elementlar ko'rinmaydi.
fun main() {
val ob = Info()
}
open class Info {
protected val message : String = ""
protected fun show(){ }
}
Shu Info classdan voris olgan A class tarkibida message, va show larni foydalanishimiz mumkin, lekin A class obyektiga ular ko'rinmaydi.
fun main() {
val ob = Info()
val a = A()
a.abs()
}
open class Info {
protected val message : String = "Message"
protected fun show(){ }
}
class A : Info() {
fun abs() {
message
show()
}
}
Internal Visibility
Kotlinda Javada mavjud bo'lmagan yangi modifikator mavjud. Deklaratsiyani internal sifatida o'rnatish faqat bitta modulda undan foydalanishimiz mumkinligini anglatadi.
Masalan.
fun main() {
val car = Car()
println(car.b)
}
internal class Car(){
val a = ""
internal val b ="B"
fun abs() { }
internal fun abs1() { }
}
Ular joriy moduldan tashqarida ko'rinmaydi. Internal Modifikatorlar foydalanuvchilardan kutubxonaning ma'lum qismlarini yashirish kerak bo'lganda foydalidir.
Shu yerga kelganda maqolamiz nihoyasiga yetdi, maqoladagi kamchiliklar uchun uzr so'rayman.
Yuqoridagi hamma kodlarimizni link dan ko'rishinggiz mumkin.
Maqolani Gita dasturchilar akademiyasi kanali uchun Ikromjonov Ma'rufjon tayyorladi