0Pricing
Android Academy · درس

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

فئات موجزة لحفظ البيانات

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

ما فئة البيانات؟

فئة البيانات هي فئة مخصصة لحفظ البيانات. وتنشئ Kotlin لها تلقائيًا دوال مفيدة.

تصرّح عنها بكتابة data قبل class.

التصريح عن فئة بيانات

تحتاج فئة البيانات إلى معامل واحد على الأقل في مُنشئها الأساسي، ويجب تمييز كل معامل بـ val أو var.

إليك User يخزن اسمًا وعمرًا.

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

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

دالة toString قابلة للقراءة

تطبع الفئة العادية عنوانًا غامضًا. أما فئة البيانات فتنشئ دالة toString واضحة تعرض كل خاصية.

يسهّل ذلك تصحيح الأخطاء كثيرًا.

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

fun main() {
    val u = User("Ada", 30)
    println(u)
}

المقارنة باستخدام equals

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

أما الفئة العادية فستعتبرهما مختلفين.

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

fun main() {
    val a = Point(1, 2)
    val b = Point(1, 2)
    println(a == b)
}

دالة copy

تنشئ دالة copy المُولَّدة كائنًا جديدًا بناءً على كائن موجود. ويمكنك تغيير الخصائص التي تحددها فقط.

ويظل الكائن الأصلي دون تغيير.

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

fun main() {
    val u = User("Ada", 30)
    val older = u.copy(age = 31)
    println(older)
}

التفكيك

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

ويتبع الترتيب ترتيب المُنشئ.

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

fun main() {
    val (name, age) = User("Sam", 25)
    println(name + " " + age)
}

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

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

يتيح ذلك لمستدعيها حذف الحقول التي لا يحتاج إليها.

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

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

hashCode للمجموعات

تنشئ فئات البيانات أيضًا hashCode، ولذلك تعمل بشكل صحيح كمفاتيح في Set أو Map.

تنتج الكائنات المتساوية قيمة hash نفسها، ولذلك يمكن اكتشاف التكرارات.

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

fun main() {
    val set = setOf(Point(1, 1), Point(1, 1))
    println(set.size)
}

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

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

  • استجابات API
  • حالة واجهة المستخدم في Android
  • سجلات قواعد البيانات

أما الكائنات الغنية بالمنطق، فالفئة العادية أنسب لها.

فئات البيانات توفر الجهد

تمنحك كلمة data المفتاحية الواحدة toString وequals وhashCode وcopy ودعم التفكيك.

وهذا قدر كبير من الشيفرة المتكررة التي لن تضطر إلى كتابتها أو صيانتها يدويًا.

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

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

الكلمة المفتاحية data هي التي تفعّل كل هذه السلوكيات المُولَّدة.

class Plain(val x: Int)
data class Smart(val x: Int)

fun main() {
    println(Plain(1) == Plain(1))
    println(Smart(1) == Smart(1))
}

اختبار سريع

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

مراجعة

تعلمت أن فئة البيانات تنشئ تلقائيًا toString وequals وhashCode وcopy ودعم التفكيك.

وهي مثالية للكائنات التي تحمل قيمًا، مثل حالة واجهة المستخدم ونماذج API. وقد غطيت الآن الدوال والفئات والمُنشئات وفئات البيانات في Kotlin.

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

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

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

ماذا ستتعلم في «فئات البيانات»؟

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

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

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

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

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

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

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

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

  1. التصريح بالدوال
  2. الفئات والخصائص
  3. البُناة وinit
  4. فئات البيانات
← العودة إلى Android Academy