پرش به محتوا

آموزش ایجاد Class در زبان دارت

برای ساختن یک کلاس در Dart، ابتدا باید یک فایل با پسوند .dart بسازید و سپس کد کلاس خود را در آنجا بنویسید. برای مثال، فایلی با نام MyClass.dart بسازید و کد زیر را در آن قرار دهید:

class MyClass {
  int myNumber;
  String myString;

  MyClass(this.myNumber, this.myString);

  void printMyValues() {
    print('myNumber: $myNumber');
    print('myString: $myString');
  }
}

در مثال قبل کلاس MyClass دارای دو ویژگی ( یا فیلد ) است: myNumber که یک عدد صحیح است و myString که یک رشته است. همچنین، کلاس دارای یک سازنده است که مقادیر myNumber و myString را دریافت می کند و به ویژگی های کلاس اختصاص می دهد. همچنین، کلاس دارای یک متد به نام printMyValues است که مقادیر ویژگی های کلاس را چاپ می کند.

برای استفاده از کلاس MyClass، می توانید یک شیء از آن ایجاد کنید و سپس به ویژگی ها و متدهای آن دسترسی داشته باشید. برای مثال:

void main() {
  MyClass myObject = MyClass(42, 'Hello');
  myObject.printMyValues();
}

در مثال قبل یک شیء از کلاس MyClass با مقادیر 42 و “Hello” ایجاد شده است و سپس متد printMyValues بر روی این شیء فراخوانی شده و مقادیر ویژگی های کلاس چاپ می شوند.

به این ترتیب، با ساختن یک کلاس در Dart، می توانید ویژگی ها و رفتارهای خاصی را برای شیء های خود تعریف کنید و از این قابلیت برای سازماندهی بهتر کد و ارتباط بین متدها و ویژگی ها استفاده کنید.

همانطور که در مثال قبل دیدیم، کلاس در Dart شامل ویژگی ها (فیلدها) و رفتارها (متدها) است. اما این خصوصیات کلاس، قابلیت های بیشتری نیز دارند که در ادامه به آن ها می پردازیم:

  1. Constructors (سازنده ها): در مثال قبل، یک سازنده برای کلاس MyClass تعریف شده بود که مقادیر myNumber و myString را دریافت و به ویژگی های کلاس اختصاص می داد. همچنین می توانید برای یک کلاس، سازنده های دیگری نیز تعریف کنید.
  2. Getters and setters (گترها و سترها): با استفاده از گترها و سترها می توانید به ویژگی های یک کلاس دسترسی پیدا کنید و آن ها را تغییر دهید. گترها مقدار ویژگی ها را برمی گردانند و سترها مقدار جدید را به ویژگی ها اختصاص می دهند.
  3. Inheritance (ارث بری): با استفاده از ارث بری، می توانید یک کلاس جدید را از یک کلاس موجود ایجاد کنید و ویژگی ها و رفتارهای آن را به صورت مشترک به کلاس جدید اضافه کنید.
  4. Abstract classes (کلاس های انتزاعی): کلاس های انتزاعی، کلاس هایی هستند که نمی توانید شیء از آن ها بسازید، اما می توانید از آن ها به عنوان یک قالب برای تعریف کلاس های دیگر استفاده کنید.
  5. Interfaces (رابط ها): رابط ها به عنوان یک قرارداد برای تعریف رفتارهایی که یک کلاس باید داشته باشد، عمل می کنند. هر کلاسی که یک رابط را پیاده سازی کند، باید رفتارهای مشخص شده در آن رابط را پیاده سازی کند.
  1. Mixins: میکسین ها، قابلیت اضافه کردن ویژگی ها و رفتارهایی به یک کلاس را فراهم می کنند، بدون اینکه بخواهید یک کلاس جدید از صفر تعریف کنید. این قابلیت به شما اجازه می دهد که ویژگی ها و رفتارهایی را که در چند کلاس مختلف استفاده می شود، به عنوان یک میکسین تعریف کنید و آن را به کلاس های مختلف اضافه کنید.
  2. Static methods and properties (متدها و ویژگی های استاتیک): متدها و ویژگی های استاتیک، به عنوان متدها و ویژگی هایی که متعلق به کلاس هستند، و نه شیء، تعریف می شوند. به عبارت دیگر، می توانید متدی را برای یک کلاس تعریف کنید که نیازی به داشتن یک شیء از آن کلاس ندارد.

حال که با انواع ویژگی های کلاس در Dart آشنا شدید، بیایید یک مثال کامل از تعریف و استفاده از یک کلاس در Dart را ببینیم:

class Person {
  String name;
  int age;
  
  Person(this.name, this.age);
  
  void introduceYourself() {
    print("Hello, my name is $name and I am $age years old.");
  }
}

void main() {
  Person john = new Person("ٍErfan", 25);
  john.introduceYourself(); // prints "Hello, my name is Erfan and I am 25 years old."
}

در مثال بالا یک کلاس با نام Person تعریف شده است. این کلاس دارای دو ویژگی، name و age، و یک متد به نام introduceYourself است. سازنده کلاس نیز با استفاده از کلمه کلیدی this، مقادیر name و age را دریافت و به ویژگی های کلاس اختصاص می دهد. در متد introduceYourself، از مقادیر name و age برای چاپ یک پیام معرفی استفاده شده است. سپس با ایجاد یک شیء جدید از کلاس Person و فراخوانی متد introduceYourself یک پیام معرفی چاپ می شود.

همانطور که در این مثال دیدیم، تعریف کلاس در Dart بسیار ساده است و شامل تعریف ویژگی ها و متدهای کلاس است. برای استفاده از یک کلاس، ابتدا باید یک شیء جدید از آن کلاس ایجاد کنید و سپس متدهای آن را صدا بزنید.

همچنین باید توجه داشت که در دارت، همه چیز از نوع شیء است، حتی تعریف تابع ها و متغیرها هم به صورت شیء است، بنابراین شیء های کلاسی که در دارت تعریف می شوند، می توانند بسیاری از ویژگی های شیء های دیگر را داشته باشند. این امر می تواند برای برنامه نویسانی که به زبان هایی مانند C++ یا Java عادت دارند، کمی تفاوت داشته باشد، اما با یادگیری این مفاهیم، به راحتی می توانید در دارت برنامه نویسی کنید.

در ادامه مثال‌های مختلفی را برای شما ارائه میکنیم:

۱. مثال کلاس پرسنل: در این مثال، یک کلاس به نام “Personnel” تعریف می‌کنیم که دارای ویژگی‌هایی مانند نام، نام خانوادگی و سن است. همچنین، متد “printInfo” نیز برای چاپ اطلاعات پرسنل تعریف شده است.

class Personnel {
  String name;
  String lastName;
  int age;

  Personnel(this.name, this.lastName, this.age);

  void printInfo() {
    print("Name: $name");
    print("Last name: $lastName");
    print("Age: $age");
  }
}

void main() {
  Personnel p1 = Personnel("Erfan", "Sadi", 30);
  p1.printInfo();
}

۲. مثال کلاس حیوانات: در این مثال، یک کلاس به نام “Animal” تعریف می‌کنیم که دارای ویژگی‌هایی مانند نام و وزن است. همچنین، متد “eat” برای غذا خوردن حیوان و متد “move” برای حرکت حیوان تعریف شده است.

class Animal {
  String name;
  double weight;

  Animal(this.name, this.weight);

  void eat() {
    print("$name is eating");
  }

  void move() {
    print("$name is moving");
  }
}

void main() {
  Animal a1 = Animal("Tiger", 200);
  a1.eat();
  a1.move();
}

۳. مثال کلاس محصول: در این مثال، یک کلاس به نام “Product” تعریف می‌کنیم که دارای ویژگی‌هایی مانند نام، قیمت و تعداد موجودی است. همچنین، متد “calculateTotalPrice” برای محاسبه قیمت کل محصول بر اساس تعداد و قیمت و متد “updateQuantity” برای به‌روزرسانی موجودی محصول تعریف شده است.

class Product {
  String name;
  double price;
  int quantity;

  Product(this.name, this.price, this.quantity);

  double calculateTotalPrice() {
    return price * quantity;
  }

  void updateQuantity(int newQuantity) {
    quantity = newQuantity;
  }
}

void main() {
  Product p1 = Product("Phone", 1000, 10);
  print("Total price: ${p1.calculateTotalPrice()}");
  p1.updateQuantity(5);
  print
("New quantity: ${p1.quantity}");
}

امیدوارم که این مثال‌ها برای شما مفید واقع شده باشد. در صورتی که سوالی دارید، خوشحال می‌شوم پاسخ بدم و مورد آخر حتما سعی کنید تمرین کنید تا همه این مثال ها ملکه ذهن شما شوند. هر سوالی داشتید در قسمت کامنت ها مطرح بفرمایید به سرعت پاسخ داده میشود.

5/5 - ( 1 امتیاز )

دیدگاه شما نگاه ما رو هم عوض میکنه !

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *