Kotlin Academy · درس

الفئات المحلية

فئات داخل الدوال

الدرس 4 من 413 خطوة

الفئات المحلية درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

الفئات داخل الدوال

تتيح لك Kotlin التصريح عن فئة محلية داخل جسم دالة. ولا تكون هذه الفئة مرئية إلا داخل تلك الدالة.

fun main() {
    class Greeting(val text: String) {
        fun show() = println(text)
    }
    Greeting("Hello local").show()
}

نطاقها محصور في الدالة

لا يمكن استخدام الفئة المحلية خارج الدالة التي أُعلن عنها فيها، مما يُبقي الأنواع المساعدة محصورة فيها بإحكام.

fun build(): String {
    class Builder {
        fun make() = "built"
    }
    return Builder().make()
}

fun main() {
    println(build())
}

التقاط المتغيرات المحلية

مثل عمليات الإغلاق، يمكن للفئات المحلية التقاط المتغيرات من الدالة المحتوية.

fun main() {
    val prefix = ">> "
    class Logger {
        fun log(msg: String) = println(prefix + msg)
    }
    Logger().log("started")
}

مثيلات متعددة

يمكنك إنشاء العدد الذي تريده من مثيلات الفئة المحلية داخل الدالة.

fun main() {
    class Point(val x: Int)
    val a = Point(1)
    val b = Point(2)
    println(a.x + b.x)
}

فئة محلية مع أساليب

الفئات المحلية فئات كاملة؛ إذ تعمل فيها المُنشئات والخصائص والأساليب جميعًا.

fun main() {
    class Account(var balance: Int) {
        fun deposit(n: Int) { balance += n }
    }
    val acc = Account(100)
    acc.deposit(50)
    println(acc.balance)
}

لماذا نستخدم فئة محلية؟

استخدمها عندما يكون النوع المساعد ذا معنى داخل دالة واحدة فقط، لتجنب ازدحام الملف بأنواع ذات مستوى أعلى.

fun parseLine(line: String): Int {
    class Token(val value: String)
    val tokens = line.split(",").map { Token(it) }
    return tokens.size
}

fun main() {
    println(parseLine("a,b,c"))
}

التقاط حالة قابلة للتغيير

يمكن للفئة المحلية تعديل المتغيرات القابلة للتغيير التي التقطتها من نطاقها المحتوي.

fun main() {
    var total = 0
    class Adder {
        fun add(n: Int) { total += n }
    }
    val a = Adder()
    a.add(5)
    a.add(7)
    println(total)
}

تنفيذ الواجهات محليًا

يمكن للفئات المحلية تنفيذ الواجهات، وهو أمر مفيد عندما تحتاج إلى تنفيذ مُسمّى وقابل لإعادة الاستخدام داخل دالة واحدة.

interface Step { fun run(): String }

fun main() {
    class First : Step {
        override fun run() = "first"
    }
    println(First().run())
}

المحلية مقابل المجهولة

اختر فئة محلية عندما تحتاج إلى اسم، لإنشاء عدة مثيلات أو للإشارة إلى النوع. واختر كائنًا مجهولًا لمثيل واحد مضمّن.

fun main() {
    class Repeater(val times: Int) {
        fun run() = "x".repeat(times)
    }
    println(Repeater(3).run())
}

التداخل داخل الحلقات

يمكن حتى التصريح عن فئة محلية داخل كتل مثل الحلقات، بحيث يقتصر نطاقها على تلك الكتلة.

fun main() {
    for (i in 1..2) {
        class Tag(val id: Int)
        println(Tag(i).id)
    }
}

أداة مساعدة عملية

تتألق الفئات المحلية عند استخدامها كأدوات مساعدة قصيرة العمر في المجال، تستعملها دالة واحدة تحديدًا.

fun report(values: List<Int>): String {
    class Stats(val sum: Int, val max: Int)
    val s = Stats(values.sum(), values.max())
    return "sum=${s.sum} max=${s.max}"
}

fun main() {
    println(report(listOf(3, 7, 2)))
}

تحقق سريع

اختبر مدى فهمك للفئات المحلية.

مراجعة

لقد تعلمت عن الفئات المحلية:

  • يُصرَّح عنها داخل دالة ويقتصر نطاقها عليها.
  • يمكنها التقاط المتغيرات المحلية المحتوية وتعديلها.
  • هي فئات كاملة: مُنشئات وخصائص وأساليب وواجهات.
  • استخدم الفئة المحلية عندما تحتاج إلى اسم، والكائن المجهول لمثيل واحد مضمّن.
fun main() {
    val tag = "L"
    class C { fun show() = tag }
    println(C().show())
}
البدء مجانًا

تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
51
الدروس
203

الأسئلة الشائعة

هل درس «الفئات المحلية» مجاني؟

نعم — نص درس «الفئات المحلية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ماذا ستتعلم في «الفئات المحلية»؟

فئات داخل الدوال تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟

لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «الفئات المحلية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟

نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الفئات المتداخلة
  2. الفئات الداخلية
  3. الكائنات المجهولة
  4. الفئات المحلية
← العودة إلى Kotlin Academy