تعريف الفئات
جزء من قسم البرمجة كائنية التوجه في رحلة Kotlin على Coddy. الدرس 2 من 57.
يصف الصنف نوعًا من الكائنات: البيانات التي يحتفظ بها وما يمكنه فعله. يعلن 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