کلاسها در زبان دارت برای ایجاد قالب و ساخت اشیاء با ویژگیها و رفتارهای مشابه استفاده میشوند.
تعریف کلاس:
برای تعریف یک کلاس در زبان دارت از کلمه کلیدی class استفاده میکنیم.
Dart
class Person {
// ویژگیها
String name;
int age;
// رفتارها
void greet() {
print('Hello, my name is $name.');
}
}بااحتیاط از کد استفاده کنید. بیشتر بدانیدcontent_copy
اجزای کلاس:
- نام کلاس:
Person - ویژگیها:
nameوage - رفتارها:
greet()
ایجاد شیء:
برای ایجاد یک شیء از یک کلاس، از کلمه کلیدی new استفاده میکنیم.
Dart
var person1 = new Person();
person1.name = 'Bard';
person1.age = 20;
person1.greet(); // چاپ "Hello, my name is Bard."بااحتیاط از کد استفاده کنید. بیشتر بدانیدcontent_copy
انواع کلاسها:
- کلاسهای ساده: کلاسهایی که فقط شامل ویژگیها و رفتارها هستند.
- کلاسهای انتزاعی: کلاسهایی که نمیتوانند اشیاء مستقیمی ایجاد کنند و فقط برای ارثبری استفاده میشوند.
- کلاسهای mixin: کلاسهایی که برای اضافه کردن ویژگیها و رفتارها به کلاسهای دیگر استفاده میشوند.
نکاتی در مورد کلاسها:
- کلاسها میتوانند وراثت (inheritance) را پشتیبانی کنند.
- کلاسها میتوانند رابط (interface) را پیادهسازی کنند.
- کلاسها میتوانند جنریک (generic) باشند و با انواع داده مختلف کار کنند.
مثالهای بیشتر:
Dart
// کلاس با وراثت
class Animal {
void move() {
print('I am moving.');
}
}
class Dog extends Animal {
void bark() {
print('Woof!');
}
}
// ایجاد شیء از کلاس Dog
var dog = new Dog();
dog.move(); // چاپ "I am moving."
dog.bark(); // چاپ "Woof!"
// کلاس با رابط
class Person {
String name;
void greet() {
print('Hello, my name is $name.');
}
}
class Greeter {
void greet() {
print('Hello!');
}
}
// کلاس Person رابط Greeter را پیادهسازی میکند
class Person implements Greeter {
// ...
}
// استفاده از رابط Greeter
var person = new Person();
person.greet(); // چاپ "Hello!"
// کلاس جنریک
class List<T> {
// ...
}
// استفاده از کلاس List با نوع String
var names = new List<String>();
names.add('Bard');
names.add('Google AI');
// استفاده از کلاس List با نوع int
var numbers = new List<int>();
numbers.add(1);
numbers.add(2);
بااحتیاط از کد استفاده کنید. بیشتر بدانیدcontent_copy
موضوعات مرتبط:
- انواع داده در زبان دارت: <نشانی وب نامعتبر برداشته شد>
- عملگرها در زبان دارت: <نشانی وب نامعتبر برداشته شد>
- توابع در زبان دارت: <نشانی وب نامعتبر برداشته شد>
منابع مفید:
- وبسایت رسمی زبان دارت: https://dart.dev/: https://dart.dev/: https://dart.dev/: https://dart.dev/
- دورههای آموزشی زبان دارت: <نشانی وب نامعتبر برداشته شد>
- کتابهای زبان دارت: <نشانی وب نامعتبر برداشته شد>
امیدوارم این توضیحات کامل و مفید بوده باشد.
نکات تکمیلی:
- سازندهها (Constructors): برای مقداردهی اولیه به ویژگیهای اشیاء در هنگام ایجاد آنها استفاده میشوند.
- getters و setters: برای دریافت و تنظیم مقادیر ویژگیها به صورت ایمن استفاده میشوند.
- مفاهیم شی گرایی: مانند وراثت، انکپسوله سازی، چندریختی و …
از مفهوم تا استفاده واقعی
در فلاتر رابط کاربری از ویجتهای کوچک ساخته میشود. بهجای طراحی یک صفحه بزرگ، آن را به بخشهایی مثل عنوان، فهرست و دکمه تقسیم کن؛ هر بخش مسئولیت مشخصی دارد.
یک مثال از دنیای واقعی
فرض کن برای یک فروشگاه محلی اپ ثبت سفارش میسازی. ابتدا فقط نام کالا و تعداد را بگیر و جمع سفارش را نشان بده. ورود، پرداخت و اعلان را وقتی اضافه کن که همین جریان ساده درست کار کند.
final prices = <int>[120, 80, 50];
final total = prices.fold(0, (sum, price) => sum + price);
print('مبلغ سفارش: $total هزار تومان');حالا نوبت توست
یک تخفیف ۱۰ درصدی به مبلغ سفارش اضافه کن و قیمت نهایی را نمایش بده.
- نمونه را یکبار اجرا یا بازنویسی کن.
- تغییر خواستهشده را بدون کپی کامل انجام بده.
- خروجی را با انتظار خودت مقایسه کن.
- در یک جمله توضیح بده چرا راهحل کار کرد.
اول مسئله و خروجی مورد انتظار را روشن کن؛ بعد ابزار را انتخاب کن.
نمونه کوچکِ کامل از پروژه بزرگِ نیمهتمام بیشتر به یادگیری کمک میکند.
کد را فقط نخوان؛ تغییرش بده، خطا بساز و دلیل نتیجه را توضیح بده.
این مسیر را ادامه بده
تمرین این صفحه را انجام بده، نتیجه را برای خودت توضیح بده و بعد سراغ درس مرتبط بعدی برو.
انتخاب مسیر بعدی ←