تعريف الأصناف
جزء من قسم البرمجة كائنية التوجه في رحلة 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