تخطَّ إلى المحتوى

🟣 شرح Kotlin

التحكّم بالظهور (Visibility Modifiers)

الدرس 28 من 29· ⏱ 1 دقائق قراءة· 🗓 آخر تحديث: ٢١ يوليو ٢٠٢٦

المُعدِّلات الأربعة

  • public (الافتراضي): مرئي من أي مكان.
  • private: محصور بنطاق التعريف (الملف أو الصنف).
  • protected: مرئي داخل الصنف وأصنافه الوارثة فقط.
  • internal: مرئي داخل نفس الوحدة (module) — مشروع/حزمة Gradle واحدة.

على مستوى الملف (top-level)

package app

public fun helper() { /* ... */ }   // public افتراضيًّا حتى بدون كتابتها
private fun onlyHere() { /* ... */ } // مرئية داخل هذا الملف فقط
internal val config = "prod"        // مرئية داخل نفس الوحدة فقط

// protected غير مسموحة على مستوى الملف — فقط داخل الأصناف

داخل الصنف

open class Account(private val id: String) {
    private val pin = "0000"        // يراها Account فقط
    protected open val limit = 1000 // يراها Account والأصناف الوارثة
    internal val bank = "بنكي"      // ترى داخل الوحدة كلها
    val owner = "براء"              // public افتراضيًّا
}

class SavingsAccount(id: String) : Account(id) {
    fun show() = println("الحد: $limit")   // مسموح: protected موروثة
}

الباني الخاص (private constructor)

مفيد لفرض إنشاء الكائن عبر دالة مصنع بدل new مباشر:

class Session private constructor(val token: String) {
    companion object {
        fun start(token: String) = Session(token)
    }
}

val s = Session.start("abc123")   // فقط عبر start()، لا Session("abc123") مباشرة

💡 القاعدة العملية: ابدأ بـ private وارفع الظهور فقط عند الحاجة الفعلية — يقلّل الاعتماديات غير المقصودة بين أجزاء الكود.

🎯 التالي: خلاصة المسار.

شرح التحكّم بالظهور (Visibility Modifiers) — Kotlin بالعربي
التحكّم بالظهور (Visibility Modifiers)Kotlin بالعربي · The Code Fix

📚 لمزيد من التعمّق في Kotlin، راجِع التوثيق الرسمي لـ Kotlin.

هل كان هذا الدرس مفيدًا؟