مادیفایرهای نمایانی در برنامه نویسی کاتلین

4 سال پیش

مادیفایرهای نمایانی در برنامه نویسی کاتلین

در این درس از مجموعه آموزش های برنامه نویسی سایت سورس باران، با هر ۴ مادیفایرهای نمایانی در برنامه نویسی کاتلین (visibility modifiers) و نحوه عملکرد آنها در سناریوهای مختلف آشنا خواهید شد.

مادیفایرهای نمایانی، کلمات کلیدی هستند که قابلیت مشاهده (دسترسی) کلاس ها، شی ها، اینترفیس‌ها، سازنده ها، توابع، مشخصه ها  و setter ها آنها را تنظیم می کنند. ( نکته: شما نمی توانید از مایفایر نمایانی برای تنظیم getter ها استفاده کنید زیرا آنها همواره همان نمایانی مشخصه را می‌گیرند.

در کلاس و شی در برنامه نویسی کاتلین، به طور خلاصه در مورد مادیفایرهای نمایانی  public و private (عمومی و خصوصی) یاد گرفتید. شما با دو مادیفایر نمایانی protected و internal (محافظت شده و داخلی) (و همچنین عمومی و خصوصی) به طور مفصل آشنا خواهید شد.

 

مادیفایرهای نمایانی درون پکیج در کاتلین

یک پکیج یا بسته مجموعه ای از توابع، مشخصه ها و کلاسها  شی ها، و اینترفیس‌های مرتبط را سازماندهی می کند.

 

مادیفایرها توضیحات
public اعلان ‌ها همه جا نمایش داده می شوند.
private اعلان ‌ها فقط درون همان فایل نمایش هستند.
internal اعلان ‌ها درون همان ماژول ( مجموع فایل‌های کاتلین که با هم کامپایل می‌ شوند) نمایش داده می شوند.
protected اعلان ‌ها در دسترس پکیج‌ ها نیستند.

توجه: اگر مادیفایر نمایانی در  کاتلین مشخص نشده باشد، به طور پیش فرض public (عمومی) است.

بیایید مثالی بزنیم:

// file name: hello.kt

package test

fun function1() {}   // public by default and visible everywhere

private fun function2() {}   // visible inside hello.kt

internal fun function3() {}   // visible inside the same module

var name = "Foo"   // visible everywhere
    get() = field   // visible inside hello.kt (same as its property)
    private set(value) {   // visible inside hello.kt
        field = value
    }

private class class1 {}   // visible inside hello.kt

 

 مادیفایرهای نمایانی در داخل کلاس ها و اینترفیس ها در کاتلین

نحوه کار مادیفایرهای نمایانی برای اعضا (توابع، مشخصه های) اعلان شده در داخل کلاس به شرح زیر است:

مادیفایرها توضیحات
public برای هر کلاینت که می تواند کلاس اعلان کننده را ببیند، قابل مشاهده است
private  صرفاً درون همان کلاس نمایان است.
internal درون کلاس و زیرکلاس ‌های آن نمایان است.
protected برای هر کلاینت درون ماژول که می تواند کلاس اعلان را ببیند قابل مشاهده است

توجه: اگر یک عضو protected را در کلاس مشتق ‌شده بدون مشخص کردن قابلیت نمایانی آن oveeride کنید، نمایانی آن همواره به صورت protected خواهد بود.

مثال؛

open class Base() {
    var a = 1                 // public by default
    private var b = 2         // private to Base class
    protected open val c = 3  // visible to the Base and the Derived class
    internal val d = 4        // visible inside the same module

    protected fun e() { }     // visible to the Base and the Derived class
}

class Derived: Base() {

    // a, c, d, and e() of the Base class are visible
    // b is not visible

    override val c = 9        // c is protected
}

fun main(args: Array<String>) {
    val base = Base()

    // base.a and base.d are visible
    // base.b, base.c and base.e() are not visible

    val derived = Derived()
    // derived.c is not visible
}

تغییر نمایانی یک سازنده در کاتلین

به طور پیش فرض، نمایانی یک سازنده public (عمومی) است. با این حال، می توانید آن را تغییر دهید. برای این منظور، شما باید صریحاً کلید واژه سازنده را اضافه کنید.

سازنده به طور پیش فرض در مثال زیر عمومی است:

class Test(val a: Int) {
    // code
}

 

در اینجا نحوه تغییر نمایانی آن آورده شده است.

class Test private constructor(val a: Int) {
    // code
}

 

در اینجا سازنده خصوصی است.

توجه: در برنامه نویسی کاتلین، توابع محلی، متغیرها و کلاس ها نمی توانند مادیفایرهای نمایانی داشته باشند.

منبع.

لیست جلسات قبل آموزش برنامه نویسی کاتلین

  1. معرفی کاتلین،  Kotlin Hello World – اولین برنامه کاتلین
  2. انواع متغیرهای پایه در کاتلین
  3. عملگرهای برنامه نویسی کاتلین
  4. تبدیل نوع در برنامه نویسی کاتلین
  5. عبارت ها، گزاره ها و بلوک ها در برنامه نویسی کاتلین
  6. کامنت ها در برنامه نویسی کاتلین
  7. ورودی / خروجی پایه در برنامه نویسی کاتلین
  8. عبارت if در برنامه نویسی کاتلین
  9. عبارت when در برنامه نویسی کاتلین
  10. حلقه های while و do … while در برنامه نویسی کاتلین
  11. حلقه for در برنامه نویسی کاتلین
  12. عبارت break در برنامه نویسی کاتلین
  13. عبارت continue در برنامه نویسی کاتلین
  14. توابع در برنامه نویسی کاتلین
  15. فراخوانی تابع میانوندی در برنامه نویسی کاتلین
  16. آرگومان ‌های پیش ‌فرضآرگومان ‌های پیش ‌فرض و نام ‌دار در برنامه نویسی کاتلین
  17. توابع بازگشتی در برنامه نویسی کاتلین
  18. کلاس و شی در برنامه نویسی کاتلین
  19. سازنده ها در برنامه نویسی کاتلین
  20. Getter ها و Setter ها در برنامه نویسی کاتلین
  21. وراثت در برنامه نویسی کاتلین 

 

0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه