Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تعريف الأصناف

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

التحدي

سهل

أكمل الطريقة 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())
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: Playground لـ Swift