0Pricing
Kotlin Academy · درس

تعريف Data Classes

فئات نماذج موجزة

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

فئات لحفظ البيانات

توجد فئات كثيرة لا تؤدي إلا إلى تجميع بعض القيم معًا: مستخدم أو نقطة أو نتيجة.

تمنحك Kotlin فئة بيانات، وهي طريقة موجزة لتعريف فئات النماذج هذه مع قدر كبير من السلوك الجاهز.

تعريف فئة بيانات

أضف الكلمة المفتاحية data قبل class، ثم أدرج الخصائص في المُنشئ.

يمنحك هذا السطر الواحد نموذجًا متكامل الميزات.

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Alice", 30)
    println(u.name)
    println(u.age)
}

toString تلقائية

تولّد فئة البيانات تلقائيًا دالة toString() سهلة القراءة. ويعرض طبع الكائن اسم فئته وقيم خصائصه.

قارن ذلك بفئة عادية كانت ستطبع قيمة hash غامضة.

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Bob", 25)
    println(u)
}

الخصائص مطلوبة

يجب أن تعلن فئة البيانات عن خاصية واحدة على الأقل في مُنشئها الأساسي.

ينبغي أن تكون كل معلمة val أو var حتى تصبح خاصية تستطيع الدوال المُولّدة استخدامها.

data class Point(val x: Int, val y: Int)

fun main() {
    val p = Point(3, 4)
    println(p)
}

خصائص val وvar

استخدم val للخصائص للقراءة فقط، وvar للخصائص القابلة للتغيير.

يُفضّل عادةً استخدام فئات البيانات غير القابلة للتغيير لأنها أسهل في الفهم والتحليل.

data class Counter(var count: Int)

fun main() {
    val c = Counter(0)
    c.count = 5
    println(c)
}

القيم الافتراضية للمعلمات

مثل أي مُنشئ، يمكن أن تحتوي فئة البيانات على قيم افتراضية.

يتيح ذلك للمتصلين حذف المعلمات التي لا يحتاجون إلى تعيينها.

data class User(val name: String, val active: Boolean = true)

fun main() {
    val u = User("Mia")
    println(u)
}

المعاملات المسمّاة

اجمع بين فئات البيانات والمعاملات المسمّاة لإنشاء واضح يشرح نفسه.

يفيد ذلك خصوصًا عندما تشترك عدة خصائص في النوع نفسه.

data class Rect(val width: Int, val height: Int)

fun main() {
    val r = Rect(width = 10, height = 5)
    println(r)
}

إضافة الدوال

يمكن أن تحتوي فئة البيانات أيضًا على جسم يضم دوالها وخصائصها المحسوبة.

وتوجد الدوال المُولّدة إلى جانب كل ما تضيفه.

data class Circle(val radius: Double) {
    fun area(): Double = 3.14159 * radius * radius
}

fun main() {
    val c = Circle(2.0)
    println(c.area())
}

خصائص خارج المُنشئ

لا تستخدم الدوال المُولّدة إلا الخصائص الموجودة في المُنشئ الأساسي.

تكون الخاصية المُعلنة داخل الجسم جزءًا من الكائن، لكن يتجاهلها toString وequals وما شابه ذلك.

data class User(val name: String) {
    var nickname: String = ""
}

fun main() {
    val u = User("Alex")
    u.nickname = "Al"
    println(u) // nickname not shown
    println(u.nickname)
}

متى تستخدم فئات البيانات

استخدم فئة بيانات عندما يكون الكائن مخصصًا أساسًا لحمل القيم:

  • كائنات نقل البيانات ونماذج API
  • الإحداثيات والنطاقات والنتائج
  • حزم الإعدادات

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

جمع المفاهيم

فئة البيانات تعريف موجز لنموذج:

  • ابدأ بـ data وأدرج الخصائص
  • تحصل مجانًا على toString وequals وhashCode وcopy
  • تدعم القيم الافتراضية والمعاملات المسمّاة والدوال الإضافية
data class Book(val title: String, val pages: Int = 0)

fun main() {
    val b = Book(title = "Kotlin", pages = 300)
    println(b)
}

اختبار سريع

اختبر مدى فهمك لتعريف فئات البيانات.

مراجعة

لقد تعلّمت كيفية تعريف فئات البيانات:

  • تولّد الكلمة المفتاحية data الدوال القياسية
  • تحدد خصائص المُنشئ السلوك المُولّد
  • تجعل القيم الافتراضية والمعاملات المسمّاة الفئات مرنة

ستستكشف بعد ذلك دالتي copy وequals المُولّدتين بالتفصيل.

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

هل درس «تعريف Data Classes» مجاني؟

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

ماذا ستتعلم في «تعريف Data Classes»؟

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

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

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

كم من الوقت يستغرق درس «تعريف Data Classes»؟

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

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

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

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

  1. تعريف Data Classes
  2. copy وequals
  3. تصريحات التفكيك
  4. Data Classes في المجموعات
← العودة إلى Kotlin Academy