মূল কন্টেন্টে যান
মডিউল 4 · 1-এর পাঠ 2কোর্সে 7/14~15 min
মডিউল পাঠ (1/2)

ক্লাস এবং মডিফায়ার

TypeScript শক্তিশালী অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) বৈশিষ্ট্য সহ স্ট্যান্ডার্ড ES6 ক্লাস প্রসারিত করে, যেমন স্ট্যাটিক টাইপিং, অ্যাক্সেস মডিফায়ার এবং শর্টহ্যান্ড প্যারামিটার বৈশিষ্ট্য।

ক্লাস এবং অ্যাক্সেস মডিফায়ার

টাইপস্ক্রিপ্টে, আপনি তিনটি প্রধান কীওয়ার্ড ব্যবহার করে ক্লাস সদস্য, বৈশিষ্ট্য এবং পদ্ধতিগুলির দৃশ্যমানতা নিয়ন্ত্রণ করতে পারেন:

  • public (ডিফল্ট): সদস্য যেকোনো জায়গা থেকে অ্যাক্সেসযোগ্য।
  • private: সদস্য শুধু ক্লাসের মধ্যে অ্যাক্সেসযোগ্য যা এটি সংজ্ঞায়িত করে।
  • protected: সদস্য ক্লাস এবং এর সাবক্লাস (উত্তরাধিকার) এর মধ্যে অ্যাক্সেসযোগ্য।
TS
class Animal {
  public name: string;
  private age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  public getAge(): number {
    return this.age;
  }
}

পরামিতি বৈশিষ্ট্য

টাইপস্ক্রিপ্ট সরাসরি কনস্ট্রাক্টরে একটি ক্লাস সদস্য ঘোষণা এবং শুরু করার জন্য একটি শর্টহ্যান্ড সিনট্যাক্স অফার করে। অ্যাক্সেস মডিফায়ারের সাথে কনস্ট্রাক্টর প্যারামিটার প্রিফিক্স করার মাধ্যমে, সম্পত্তি স্বয়ংক্রিয়ভাবে তৈরি এবং বরাদ্দ করা হয়:

TS
// This syntax does exactly the same as the previous example!
class Animal {
  constructor(
    public name: string,
    private age: number,
  ) {}
}

ইন্টারফেস বাস্তবায়ন

একটি ক্লাস implements কীওয়ার্ড ব্যবহার করে এক বা একাধিক ইন্টারফেস বাস্তবায়ন করতে পারে। এটি নিশ্চিত করে যে ক্লাসটি সমস্ত প্রয়োজনীয় পদ্ধতি এবং বৈশিষ্ট্যগুলি সংজ্ঞায়িত করে একটি নির্দিষ্ট চুক্তি মেনে চলে:

TS
interface Flyable {
  fly(altitude: number): void;
}

class Bird implements Flyable {
  constructor(public name: string) {}

  fly(altitude: number): void {
    console.log(`${this.name} is flying at ${altitude} meters.`);
  }
}

উত্তরাধিকার এবং super

TypeScript সম্পূর্ণরূপে ক্লাস উত্তরাধিকার সমর্থন করে. একটি ক্লাস extends কীওয়ার্ড ব্যবহার করে আরেকটি ক্লাস প্রসারিত করতে পারে। যদি সাবক্লাস একটি কনস্ট্রাক্টরকে সংজ্ঞায়িত করে, তাহলে this অ্যাক্সেস করার আগে এটিকে super() ফাংশন ব্যবহার করে বেস ক্লাস কনস্ট্রাক্টরকে কল করতে হবে:

TS
class Person {
  constructor(public name: string) {}
}

class Student extends Person {
  constructor(
    name: string,
    public grade: number,
  ) {
    super(name); // Calls the Person constructor
  }
}

নিজে চেষ্টা করে দেখুন

অনুশীলনী 1: কার ক্লাস এবং প্রাইভেট মডিফায়ার

ব্যায়াম#ts.m4.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

গাড়ি নামে একটি শ্রেণী ঘোষণা করুন। এতে অবশ্যই কনস্ট্রাক্টরে সংজ্ঞায়িত একটি পঠনযোগ্য মডেল প্রপার্টি (স্ট্রিং) থাকতে হবে, একটি প্রাইভেট মাইলেজ প্রপার্টি (সংখ্যা) 0 থেকে আরম্ভ করা, একটি পাবলিক মেথড ড্রাইভ (মাইল: সংখ্যা): অকার্যকর যা মাইলেজ দ্বারা মাইলেজ বৃদ্ধি করে এবং একটি গেটার বা মেথড getMileage(): সংখ্যা যা মাইলেজ প্রদান করে।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ব্যক্তিগত মাইলেজ ব্যবহার করুন: সংখ্যা = 0; ভেরিয়েবলকে প্রাইভেট করতে এবং কনস্ট্রাক্টর(পাবলিক ওনলি মডেল: স্ট্রিং) {} শর্টহ্যান্ড হিসেবে।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম 2: শেপ ইন্টারফেস এবং সার্কেল ক্লাস

ব্যায়াম#ts.m4.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

শেপ ইন্টারফেস প্রয়োগ করে সার্কেল ক্লাস বাস্তবায়ন করে কোডটি সম্পূর্ণ করুন। ক্লাসে অবশ্যই কনস্ট্রাক্টরের মাধ্যমে একটি পঠনযোগ্য ব্যাসার্ধ বৈশিষ্ট্য (সংখ্যা) সেট থাকতে হবে এবং getArea(): সংখ্যা (রিটার্নিং Math.PI * ব্যাসার্ধ * ব্যাসার্ধ) প্রয়োগ করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

সার্কেল ক্লাসে ইমপ্লিমেন্ট শেপ ব্যবহার করুন এবং getArea(): সংখ্যা পদ্ধতিটি সংজ্ঞায়িত করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম 3: বিমূর্ত যানবাহন ক্লাস এবং মোটরসাইকেল সাবক্লাস

ব্যায়াম#ts.m4.l1.e3
প্রচেষ্টা: 0লোড হচ্ছে...

মোটরসাইকেল নামে একটি শ্রেণী ঘোষণা করুন যা বিমূর্ত শ্রেণীর যানবাহনকে প্রসারিত করে। মেক (this.make) এবং 'start'-এর পরে 'মোটরসাইকেল' স্ট্রিং ফেরত দেওয়ার জন্য এটিকে start() পদ্ধতি প্রয়োগ করতে হবে।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ক্লাস মোটরসাইকেল ব্যবহার করুন যানবাহনকে প্রসারিত করে এবং start(): স্ট্রিং পদ্ধতি প্রয়োগ করুন যা সঠিক স্ট্রিং প্রদান করে।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অনুশীলনী 4: প্যারামিটার বৈশিষ্ট্য এবং উত্তরাধিকার

ব্যায়াম#ts.m4.l1.e4
প্রচেষ্টা: 0লোড হচ্ছে...

Employee নামে একটি ক্লাস তৈরি করুন যা কনস্ট্রাক্টর শর্টহ্যান্ড ব্যবহার করে একটি পঠনযোগ্য সম্পত্তি আইডি (সংখ্যা) এবং একটি সর্বজনীন সম্পত্তির নাম (স্ট্রিং) সংজ্ঞায়িত করে। তারপরে, একটি শ্রেণী বিকাশকারী তৈরি করুন যা কর্মচারীকে প্রসারিত করে এবং কনস্ট্রাক্টরের মাধ্যমে একটি পাবলিক সম্পত্তি বিভাগ (স্ট্রিং) যোগ করে।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ডেভেলপার কনস্ট্রাক্টরে সুপার(আইডি, নাম) ব্যবহার করুন এবং কনস্ট্রাক্টরের মাধ্যমে সম্পত্তি সংজ্ঞায়িত করতে পাবলিক ডিপার্টমেন্ট ব্যবহার করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ