Vivasoft-logo

7.7 āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡ Abstraction

 

āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻœāĻžāĻ¨āĻŋ āĻ¯ā§‡ OOP āĻŦāĻž āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸ āĻ“āĻ°āĻŋā§Ÿā§‡āĻ¨ā§āĻŸā§‡āĻĄ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻŽā§‚āĻ˛āĻ¤ ā§Ē āĻŸāĻž āĻ•āĻ¨āĻ¸ā§‡āĻĒā§āĻŸā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ—āĻ āĻŋāĻ¤āĨ¤ āĻ¸ā§‡āĻ—ā§āĻ˛ā§‹ āĻšāĻšā§āĻ›ā§‡āĻƒ āĻāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨, āĻāĻ¨āĻ•ā§āĻ¯āĻžāĻĒā§āĻ¸ā§āĻ˛ā§‡āĻļāĻ¨, āĻ‡āĻ¨āĻšā§‡āĻ°āĻŋāĻŸā§‡āĻ¨ā§āĻ¸ āĻāĻŦāĻ‚ āĻĒāĻ˛āĻŋāĻŽāĻ°āĻĢāĻŋāĻœāĻŽāĨ¤ āĻāĻ‡ āĻ˛ā§‡āĻ–āĻžā§Ÿ āĻ†āĻŽāĻ°āĻž āĻāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨ āĻ¨āĻŋā§Ÿā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻŦāĨ¤

āĻāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨ āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŸāĻĒāĻŋāĻ•āĨ¤Â Abstraction āĻšāĻ˛ā§‹ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻŖāĻž, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻŦāĻŋāĻˇā§ŸāĻ—ā§āĻ˛ā§‹ āĻ‡āĻ‰āĻœāĻžāĻ°āĻ•ā§‡ āĻ¨āĻž āĻĻā§‡āĻ–āĻŋā§Ÿā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĢāĻžāĻ‚āĻļāĻ¨āĻžāĻ˛āĻŋāĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻŦā§‡āĨ¤ āĻ¯ā§‡āĻŽāĻ¨āĻƒ āĻāĻ•āĻŸāĻž āĻ—āĻžā§œā§€ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ—āĻžā§œā§€āĻ° āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻžāĻ° āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻœāĻžāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§Ÿā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡āĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° selected āĻ•āĻŋāĻ›ā§ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻœāĻžāĻ¨āĻž āĻĻāĻ°āĻ•āĻžāĻ° āĻ¯ā§‡āĻŽāĻ¨ gas pedal, brake, steering wheel, blinker āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻ¤āĻžāĻ‡ āĻ—āĻžā§œā§€āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡āĻ° āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋā§ŸāĻžāĻ°āĻŋāĻ‚ āĻ—ā§‹āĻĒāĻ¨ āĻ°āĻžāĻ–āĻž āĻšā§Ÿ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻĨā§‡āĻ•ā§‡āĨ¤

āĻ āĻŋāĻ• āĻāĻ•āĻ‡ āĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯āĻ–āĻ¨ ATM āĻĨā§‡āĻ•ā§‡ āĻŸāĻžāĻ•āĻž āĻ¤ā§āĻ˛āĻŋ, āĻ¤āĻ–āĻ¨ ATM āĻ āĻŸāĻžāĻ•āĻž āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ†āĻ¸ā§‡, āĻŽāĻžāĻ¨ā§‡ ATM āĻāĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡āĻ° āĻ•āĻžāĻœāĻ•āĻ°ā§āĻŽ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻžāĻ¨āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦāĻžāĻŸāĻ¨ā§‡ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°ā§‡ āĻŸāĻžāĻ•āĻž āĻ¤ā§āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°āĻ˛ā§‡āĻ‡ āĻšāĻ˛ā§‹āĨ¤ āĻāĻŸāĻžāĻ‡ āĻšāĻ˛ā§‹ āĻāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻŽā§‡āĻ•āĻžāĻ¨āĻŋāĻœāĻŽ āĻ‡āĻ‰āĻœāĻžāĻ°āĻ•ā§‡ āĻ¨āĻž āĻĻā§‡āĻ–āĻŋā§Ÿā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻžāĻ° āĻĢāĻžāĻ‚āĻļāĻ¨āĻžāĻ˛āĻŋāĻŸāĻŋāĻ—ā§āĻ˛ā§‹ āĻ­āĻŋāĻœāĻŋāĻŦāĻ˛ āĻ°āĻžāĻ–āĻž āĻšā§ŸāĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄāĻŸāĻŋ āĻĻā§‡āĻ–āĻ˛ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻ†āĻ°āĻ“ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤

 
 
 
function Car(name){
this.name = name;
this.start = function(){
// car starting mechanism
console.log(this.name + ” starts”);
}
this.stop = function(){
// break mechanism
console.log(this.name+ ” stops”);
}
}
 
let mercedes = new Car(“Mercedes Benz”);
mercedes.start(); // Output: Mercedes Benz starts
mercedes.stop(); // Output: Mercedes Benz stops
 

 

āĻāĻ–āĻžāĻ¨ā§‡Â mercedes āĻ¨āĻžāĻŽā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ—āĻžā§œā§€ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸāĻĒ āĻ‡āĻŽāĻĒā§āĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻšā§Ÿ āĻ¤āĻž āĻœāĻžāĻ¨āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡āĨ¤ āĻ¤āĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻœāĻžāĻ¨āĻž āĻĻāĻ°āĻ•āĻžāĻ° āĻ¯ā§‡Â start āĻŽā§‡āĻĨāĻĄ āĻ•āĻ˛ āĻ•āĻ°āĻ˛ā§‡ āĻ—āĻžā§œā§€ āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸ āĻšāĻŦā§‡, āĻāĻŦāĻ‚ stop āĻŽā§‡āĻĨāĻĄ āĻ•āĻ˛ āĻ•āĻ°āĻ˛ā§‡ āĻ—āĻžā§œā§€ āĻ¸ā§āĻŸāĻĒ āĻšāĻŦā§‡āĨ¤

āĻ‰āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻ•āĻ¨ā§āĻ¸āĻŸā§āĻ°āĻžāĻ•ā§āĻŸāĻ° āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĻāĻŋā§Ÿā§‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋā§Ÿā§‡āĻ›āĻŋāĨ¤ āĻ†āĻŽāĻ°āĻž āĻšāĻžāĻ‡āĻ˛ā§‡ āĻ¤āĻž āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•ā§āĻ˛āĻžāĻ¸ āĻĻāĻŋā§Ÿā§‡āĻ“ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤

  • āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ-ā§§:

     
     
     
    class Account {
    #balance = 0; // Private property
    constructor(name, initBalance) {
    this.name = name;
    this.#balance = initBalance;
    }
    addBalance(amount) {
    this.#balance = this.#balance + amount;
    }
    deductBalance(amount) {
    this.#balance = this.#balance – amount;
    }
    showBalance() {
    console.log(‘Current balance is: ‘, this.#balance);
    }
    }
     
    const myAccount = new Account(‘Tajnur’, 526310);
    console.log(myAccount); // Account { name: ‘Tajnur’ }
    myAccount.addBalance(804700);
    myAccount.showBalance(); // Current balance is: 1331010
    // āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ•ā§‹āĻĄāĻŸāĻŋāĻ¤ā§‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻāĻ•āĻžāĻ‰āĻ¨ā§āĻŸā§‡ āĻŸāĻžāĻ•āĻž āĻ¯ā§‹āĻ— āĻŦāĻž āĻŦāĻŋā§Ÿā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¨āĻž āĻĻā§‡āĻ–āĻŋā§Ÿā§‡ āĻāĻ•āĻŸāĻŋ āĻŽā§‡āĻĨāĻĄā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻāĻŦāĻ‚ āĻŽā§‡āĻĨāĻĄā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŸāĻŋ āĻ‡āĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻ•āĻžāĻ› āĻĨā§‡āĻ•ā§‡ āĻšāĻžāĻ‡āĻĄ āĻ•āĻ°ā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤
     

     

    āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ-ā§¨:

     
     
     
    function Machine(name) {
    this.name = name;
    this.turnOn = function () {
    // Some process here
    console.log(`${this.name} machine starts…`);
    }
    this.turnOff = function () {
    // Some process here
    console.log(`${this.name} machine stops.`);
    }
    }
     
    const mig24 = new Machine(‘Jet’);
    mig24.turnOn(); // Jet machine starts…
    mig24.turnOff(); // Jet machine stops.
     

     

    āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ-ā§Š:

     
     
     
    function Computer(name, model) {
    this.name = name;
    this.model = model;
    this.startPC = function () {
    console.log(`Your ${this.name} ${this.model} is starting…`);
    }
    this.stopPC = function () {
    console.log(`Your ${this.name} ${this.model} is shutting down…`);
    }
    }
     
    const myPC = new Computer(‘MacBook’, ‘Pro’);
    myPC.startPC(); // Your MacBook Pro is starting…
    myPC.stopPC(); // Your MacBook Pro is shutting down…
     

     

    āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ-ā§Ē:

     
     
     
    function InternetBanking(name, mobile, initBalance) {
    this.name = name;
    this.mobile = mobile;
    this.balance = initBalance;
     
    this.checkLocation = function () {
    // Process here
    }
    this.checkValidNumber = function (number) {
    // Process here
    }
    this.checkAmountValidity = function (amount) {
    // Process here
    }
    this.addAmount = function (amount, number) {
    // Process here
    }
     
    this.transferBalance = function (amount, toNumber) {
    this.checkLocation();
    this.checkValidNumber(toNumber);
    this.checkAmountValidity(amount);
    this.addAmount(amount, toNumber);
    console.log(‘Successfully balance transfered.’);
    }
    }
     
    const mobileBanking = new InternetBanking(‘Imrul’, ‘01710304050’, 15000);
    mobileBanking.transferBalance(7000, ‘01520708090’); // Successfully balance transfered.
     

     

    āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ-ā§Ģ:

     
     
     
    class WifiService {
    // Private Methods
    static #checkWifiCompatibility() {
    // Wifi hardware compatibility checking processes here
    console.log(‘Compatibility ok.’);
    return true;
    }
    static #turnOnWifi() {
    // Wifi machine power on processes
    console.log(‘Wifi on.’);
    }
    static #turnOffWifi() {
    // Wifi machine power off processes
    console.log(‘Wifi off.’);
    }
    static #checkAvailableNetworks() {
    // Available networks checking processes
    console.log(‘Searching for available networks…’);
    }
     
    // Public Methods
    start() {
    if (WifiService.#checkWifiCompatibility()) {
    WifiService.#turnOnWifi();
    WifiService.#checkAvailableNetworks();
    }
    }
    stop() {
    WifiService.#turnOffWifi();
    }
    }
     
    const mobileWifi = new WifiService();
    mobileWifi.start();
    mobileWifi.stop();
    // Output:
    // Compatibility ok.
    // Wifi on.
    // Searching for available networks…
    // Wifi off.
  • āĻāĻ•āĻŸāĻž āĻāĻŸāĻŋāĻāĻŽ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻŸāĻžāĻ•āĻž āĻ‰āĻ¤ā§āĻ¤ā§‹āĻ˛āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ āĻŸāĻž Abstraction āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ–āĻžāĻ“āĨ¤
  •  āĻāĻ•āĻŸāĻž āĻĢāĻŸā§‹āĻ•āĻĒāĻŋ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻĢāĻŸā§‹āĻ•āĻĒāĻŋ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ āĻŸāĻž Abstraction āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ–āĻžāĻ“āĨ¤
  • āĻŽā§‹āĻŦāĻžāĻ‡āĻ˛ āĻ‡āĻ‰āĻœāĻžāĻ° āĻ•āĻ˛ āĻ•ā§‡āĻŸā§‡ āĻĻāĻŋāĻ˛ā§‡ āĻ¯ā§‡āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° āĻāĻ•āĻŸāĻž āĻĄā§‡āĻŽā§‹ āĻĻāĻžāĻ“āĨ¤
  • Abstraction āĻ•ā§‡ āĻ•āĻžāĻœā§‡ āĻ˛āĻžāĻ—āĻŋā§Ÿā§‡ āĻŦāĻŋāĻŽāĻžāĻ¨ā§‡āĻ° āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻ…āĻ¨-āĻ…āĻĢ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻž āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻžāĻ“āĨ¤
  • āĻĄāĻžāĻŸāĻž āĻšāĻžāĻ‡āĻĄ āĻ°ā§‡āĻ–ā§‡ Abstraction āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ āĻĄāĻžāĻŸāĻžāĻ° read-write āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻĻā§‡āĻ–āĻžāĻ“āĨ¤