کلاس ها/اشیا (Classes/Objects)
در «کلاس ها در سوئیفت» با «کلاس (Class)» و «شیء (Object)» کار می کنیم. کلاس نوع ارجاعی است؛ یعنی نمونه ها هویت مشترک دارند. بنابراین تغییر از یک ارجاع، در بقیه دیده می شود. این موضوع در پروژه ها خیلی مهم است.
کلاس ها در سوئیفت
کلاس یک نوع ارجاعی با «ویژگی ها (Property)» و «متدها (Method)» است. نمونه کلاس با let یا var ساخته می شود و با ارجاع منتقل می شود.
تعریف یک کلاس ساده
یک کلاس بساز، ویژگی بگذار، سپس متد را صدا بزن. این کار مثل ساخت ماشین حساب جیبی است.
class Counter {
var value = 0;
func inc() {
value += 1;
}
}
let c = Counter();
c.inc();
نکته: چون کلاس ارجاعی است، چند متغیر می توانند همان نمونه را تغییر دهند.
سازنده و متدهای نمونه
«سازنده (Initializer)» حالت شروع شیء را تنظیم می کند. سپس با متدها وضعیت را عوض می کنیم؛ مثل شارژ حساب در برنامه بانکی.
class BankAccount {
var balance: Int;
init(balance: Int) {
self.balance = balance;
}
func deposit(_ amount: Int) {
balance += amount;
}
}
let acc = BankAccount(balance: 100);
acc.deposit(25);
print(acc.balance);
ادامه مسیر یادگیری
برای تفاوت «مقداری/ارجاعی»، صفحه OOP سوئیفت را ببین. همچنین بعداً با structها تفاوت ها را دقیق تر می بینی.
گام های تمرینی
- کلاس Student با نام و نمره بساز.
- یک سازنده بگذار و مقداردهی کن.
- متد افزایش نمره بنویس و تست کن.
- دو ارجاع به یک نمونه بساز و تغییرات را ببین.
جمع بندی سریع
- کلاس ها در سوئیفت ارجاعی هستند.
- سازنده حالت اولیه را تنظیم می کند.
- متدها رفتار شیء را پیاده می کنند.
- با مثال ها در ادیتور تمرین کن.