۶

اشیاء و کلاس‌ها 🧑‍💻☕

برنامه‌نویسی رو مثل دنیای واقعی مدل‌سازی می‌کنیم!

اشیاء (Objects): یه عالمه ویژگی تو یه جا!

اگه بخوایم چندتا ویژگی مربوط به یه چیز رو یه جا نگه داریم (مثلاً اسم، فامیل و سن یه کاربر)، اشیاء یا آبجکت‌ها به دادمون می‌رسن! آبجکت یه مجموعه‌ای از زوج‌های "کلید: مقدار" هست.

ساختن و استفاده از یه آبجکت
// ساختن یه آبجکت برای یه کاربر
const user = {
  firstName: "سارا",
  age: 28,
  // تابعی که داخل آبجکت باشه، بهش می‌گن متد (Method)
  sayHello: function() {
    console.log("سلام! من " + this.firstName + " هستم.");
  }
};

console.log(user.firstName); // خروجی: "سارا"
user.sayHello(); // خروجی: "سلام! من سارا هستم."

کلاس‌ها (Classes): کارخونه‌ی ساخت آبجکت!

اگه بخوایم صدتا کاربر با همین ویژگی‌ها بسازیم، باید صد بار کد رو کپی کنیم؟ نه! کلاس‌ها مثل یه نقشه یا یه کارخونه‌ هستن که از روشون آبجکت تولید می‌کنیم.

ساختن یه کلاس و تولید آبجکت
// تعریف یه کلاس برای ماشین
class Car {
  // این تابع سازنده‌ست، وقتی یه ماشین جدید می‌سازیم اجرا می‌شه
  constructor(brand, model, year) {
    this.brand = brand;
    this.model = model;
    this.year = year;
  }
  getInfo() {
    return `${this.brand} مدل ${this.model} (${this.year})`;
  }
}

// حالا از روی این نقشه، دو تا ماشین واقعی می‌سازیم
const car1 = new Car("پژو", "۲۰۶", 1398);
console.log(car1.getInfo()); // خروجی: "پژو مدل ۲۰۶ (1398)"

تمرین! 🧠

یه کلاس برای `Book` (کتاب) بساز که ویژگی‌های `title` (عنوان)، `author` (نویسنده) و `pages` (تعداد صفحات) رو داشته باشه. یه متد هم به اسم `info` براش بنویس که اطلاعات کتاب رو تو یه جمله قشنگ تو کنسول چاپ کنه.

جواب تمرین

class Book {
  constructor(title, author, pages) {
    this.title = title;
    this.author = author;
    this.pages = pages;
  }

  info() {
    console.log(`کتاب "${this.title}" نوشته ${this.author}، ${this.pages} صفحه دارد.`);
  }
}

const book1 = new Book("بوف کور", "صادق هدایت", 120);
book1.info();