تعريف الأصناف
جزء من قسم البرمجة كائنية التوجه في رحلة Swift على Coddy. الدرس 2 من 57.
يصف الصنف نوعًا من الكائنات: البيانات التي يحتفظ بها كل كائن وما يمكنه فعله. يعلن class Dog { ... } عن النوع، وتنشئ Dog() كائنًا من ذلك النوع، ويُسمّى أيضًا مثيلًا:
class Dog {
var name = "Rex"
var age = 3
}
let dog = Dog()
print(dog.name)
print(dog.age)الناتج:
Rex
3المتغيرات داخل الفئة هي خصائصها. لكل مثيل نسخته الخاصة، ويمكن قراءتها وتغييرها باستخدام نقطة:
class Dog {
var name = "Rex"
var age = 3
}
let first = Dog()
let second = Dog()
second.name = "Bella"
print(first.name)
print(second.name)الناتج:
Rex
Bellaالدالة داخل الفئة هي طريقة. يمكن للطريقة قراءة خصائص النسخة التي تُستدعى عليها وتغييرها:
class Counter {
var count = 0
func increment() {
count += 1
}
func report() -> String {
"count is \(count)"
}
}
let clicks = Counter()
clicks.increment()
clicks.increment()
print(clicks.report())الناتج:
count is 2تُكتب أسماء الأنواع بصيغة UpperCamelCase (BankAccount)؛ وتُكتب الخصائص والأساليب بصيغة lowerCamelCase (balance، deposit()). إن وضع البيانات والدوال التي تعمل عليها داخل نوع واحد هو الفكرة الأساسية للبرمجة كائنية التوجه: فالكود الذي يستخدم Counter يستدعي increment() ولا يحتاج مطلقًا إلى معرفة كيفية تخزين العَدّ.
class BankAccount {
var balance = 0
func deposit(_ amount: Int) {
balance += amount
}
}التحدي
سهلأكمل الطريقة describe() للفئة Pet. فهي تُرجع جملة واحدة مبنية من الخصائص: حيوان أليف اسمه Rex، ونوعه dog، وعمره 3، يعطي Rex is a 3 year old dog.
ينشئ الكود المُزوَّد كائنًا من Pet، ويضبط خصائصه من الإدخال (name وspecies وage)، ثم يطبع نتيجة describe().
يجب وضع الكود الخاص بك في Pet.swift. يحتوي main.swift على كود الإدخال/الإخراج المُزوَّد، ولا يمكن تعديله.
جرّب بنفسك
// كود الإدخال/الإخراج المُزوَّد: اتركه كما هو
var input: [String] = []
while let line = readLine() { input.append(line) }
let pet = Pet()
pet.name = input[0]
pet.species = input[1]
pet.age = Int(input[2])!
print(pet.describe())
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس البرمجة كائنية التوجه
1الأصناف والكائنات
العمل مع الملفاتتعريف الأصنافالأساليب وselfالمُهيِّئاتالأصناف هي مراجعمراجعة - بطاقة المكتبة4التغليف
التحكم في الوصولللقراءة فقط من الخارجحماية الحالةالمهيئات القابلة للفشلمراجعة - الحساب البنكي7تعدد الأشكال والأنواع العامة
تعدد الأشكالتحويل الأنواعالدوال العامةالأنواع العامةمراجعة - حاسبة الأشكالتدرّب بنفسك: Playground لـ Swift