تعريف الفئات
جزء من قسم البرمجة كائنية التوجه في رحلة Kotlin على Coddy. الدرس 2 من 57.
تصف class نوعًا من الكائنات: البيانات التي يحتفظ بها وما يمكنه فعله. يعلن class Dog { ... } عن النوع، وينشئ Dog() كائنًا من ذلك النوع، وهو مثيل. لا تحتوي Kotlin على الكلمة المفتاحية new:
class Dog {
var name = "Rex"
var age = 3
}داخل main:
val dog = Dog()
println(dog.name)
println(dog.age)الناتج:
Rex
3المتغيرات الموجودة داخل الفئة هي خصائصها. لكل مثيل نسخته الخاصة، وتتم قراءتها وتغييرها باستخدام نقطة:
class Dog {
var name = "Rex"
}داخل main:
val first = Dog()
val second = Dog()
second.name = "Bella"
println(first.name)
println(second.name)الناتج:
Rex
Bellaالدالة الموجودة داخل فئة تُسمّى طريقة (تسمّيها Kotlin دوال الأعضاء). يمكن للطريقة قراءة خصائص النسخة التي استُدعيت عليها وتغييرها:
class Counter {
var count = 0
fun increment() {
count++
}
fun report() = "count is $count"
}داخل main:
val clicks = Counter()
clicks.increment()
clicks.increment()
println(clicks.report())الناتج:
count is 2تستخدم أسماء الأصناف نمط UpperCamelCase (BankAccount)؛ بينما تستخدم الخصائص والأساليب نمط lowerCamelCase (balance، deposit()). يُعد تجميع البيانات مع الدوال التي تعمل عليها الفكرة الأساسية للبرمجة كائنية التوجه: فالكود الذي يستخدم Counter يستدعي increment() ولا يحتاج مطلقًا إلى معرفة كيفية تخزين العدد.
class BankAccount {
var balance = 0
fun deposit(amount: Int) {
balance += amount
}
}التحدي
سهلأكمل الدالة describe() للفئة Pet. تُرجع جملة واحدة مبنية من الخصائص: حيوان أليف اسمه Rex، ونوعه dog، وعمره 3 يُعطي Rex is a 3 year old dog.
ينشئ الكود المُعطى كائنًا من Pet، ويُعيّن خصائصه من الإدخال (الاسم والنوع والعمر)، ويطبع نتيجة describe().
ضع الكود الخاص بك في Pet.kt. يحتوي Main.kt على كود الإدخال/الإخراج المُعطى ولا يمكن تعديله.
جرّب بنفسك
fun main() {
// كود الإدخال/الإخراج المُزوَّد: أبقه كما هو
val input = generateSequence(::readLine).toList()
val pet = Pet()
pet.name = input[0]
pet.species = input[1]
pet.age = input[2].toInt()
println(pet.describe())
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس البرمجة كائنية التوجه
1الفئات والكائنات
العمل مع الملفاتتعريف الفئاتالمنشئات الأساسيةكتل init والتحقق من الصحةالمنشئات الثانويةمراجعة - بطاقة المكتبة4الوراثة
الأصناف المفتوحة والأصناف الفرعيةتجاوز الأعضاءsuper والمنشئاتالأصناف المجرّدةمراجعة - دليل الموظفينتدرّب بنفسك: Playground لـ Kotlin