Thursday, May 11, 2017

অবজেক্ট ওরিয়েন্টেড প্রগ্রামিং

অবজেক্ট ওরিয়েন্টেড প্রগ্রামিং
অবজেক্ট ঘিরে বা প্রচুর অবজেক্ট নিয়ে যে প্রগ্রামিং করা হয় তাকে অবজেক্ট ওরিয়েন্টেড প্রগ্রামিং বলে।

class Bus{
    constructor(driver,wheels,seats){
        this.driver = driver;
        this.wheels = wheels;
        this.seats = seats;
    }
}

class Truck{
    constructor(driver,wheels,capacity){
        this.driver = driver;
        this.wheels = wheels;
        this.capacity= capacity;
    }
}

Bus ও  Truck এর কমন প্রপার্টি নিয়ে Vehicle নামের ক্লাস বানানোঃ

class Vehicle{
    constructor(driver,wheels){
    this.driver=driver;
    this.wheels=wheels;
    }
}

এখন Vehicle ক্লাস থেকে Bus class বানাতে হবেঃ
class Bus extends Vehicle{
    constructor(driver,wheels,seats){
        super(driver,wheels);
        this.seats = seats;
    }
}

ব্যাখ্যাঃ Vehicle ক্লাসের সাথে একটা প্রপার্টি যোগ করে Bus class বানানো হয়েছে। যেহেতু Vehicle ক্লাস উপরে আর Bus class ক্লাস নিচে  তাই Vehicle ক্লাস super class. 

এবার বাস ক্লাস থেকে হানিফ বাস নামে একটি অবজেক্ট ডিক্লেয়ার করা যাকঃ

var hanifBus = new Bus("hanif",4,45);
console.log(hanifBus);

ফলাফলঃ

Bus {driver: "hanif", wheels: 4, seats: 45}

এবার ট্রাক!

class Truck extends Vehicle {
    constructor(driver,wheels,capacity){
        super(driver,wheels);
        this.capacity=capacity;
    }
}

var srPribahan=new Truck("Kabir",4,"5 ton");
console.log(srPribahan);

ফলাফলঃ
Truck {driver: "Kabir", wheels: 4, capacity: "5 ton"}

Inheritence কি?
একটি কমন ক্লাস কে বর্ধিত ()extend করে আরেকটি ক্লাস বানানোকে প্রগ্রামিং এর ভাষায় বলে Inheritence।

যেমনঃ কমন ক্লাস  Vehicle কে extends করে Bus ও Truck class বানানো যায়।

ক্লাসের মধ্যে লেখা ফাংশন বা মেথডঃ
কোণ ক্লাস থেকে বানানো অবজেক্টগুলো যেসব কাজ করে সেগুলোকে ক্লাসের মধ্যে ফাংশন হিসেবে লেখা যায়। যেমন কাক নামের ক্লাস থেকে বানানো অবজেক্ট এর মধ্যে কাকের কাজ 'কা কা কা...... ' করাকে ফাংশন হিসেবে লেখা যায়-

মেথডঃ
কোণ ক্লাসের মধ্যে যেসব ফাংশন থাকে তাদের মেথড বলে। যেমন কাক ক্লাসের মধ্যে কাকের কাজ'কা কা কা ' নিয়ে একটি ফাংশন আছে জেটি একটি মেথড।

class Crow{
    constructor(age){
        this.age=age;
    }
    sing(){
        console.log("ka ka ka...........");
    }
}

 Polymorphism কি?
 poly মানে বহু আর morphism মানে রূপ বা সেপ চেঞ্জ হওয়া। তার মানে Polymorphism এর মানে হচ্ছে কোন জিনিসের আলাদা আলাদা রূপ। এর সংজ্ঞা দিতে হলে বলা যায়, কোন একটি কমন কাজ কে কিভাবে করবে তা নিয়ে না ভেবে সেটা করতে বলাই হচ্ছে Polymorphism। যেমনঃ বাসায় গিয়ে এই গরমে এক গ্লাস পানি চাওয়া যা কাজের বুয়া একভাবে দিবে, মা আরেকভাবে দিবে আর বোন হয়ত আরেকভাবে দিবে।

 encapsulation কি ?
 এটি অবজেক্ট ওরিয়েন্টেড প্রগ্রামিং এর একটি গুরুত্বপূর্ণ ফিচার। এই ফিচার অনুযায়ী ক্লাসের প্রপার্টি বা মেথড গুলোকে বাইরের কাউকে দেখতে হয়না, যাতে করে অন্যকেউ সেগুলোকে পরিবর্তন, নষ্ট বা ক্ষতি করতে না পারে। এই লুকিয়ে রাখাজে বলে  encapsulation।

 class Bang{
    constructor(food,flee){
        this.food=food;
        this.flee=flee;
        }
 }
class KolaBang extends Bang{
    constructor(food,flee,size){
        super(food,flee);
        this.size=size;
    }
}

var aktaBang=new KolaBang("insects","slow","big");
console.log(aktaBang);

ফলাফলঃ
KolaBang {food: "insects", flee: "slow", size: "big"}


class KunoBang extends Bang{
    constructor(food, flee,live){
        super(food,flee);
        this.live=live;
    }
}
var arektaBang=new KunoBang("insect als","fast","home");
console.log(arektaBang);

ফলাফলঃ
KunoBang {food: "insect als", flee: "fast", live: "home"}

No comments:

Post a Comment