UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#316 JavaScriptにおけるオブジェクト指向プログラミングについて

記入日:2023-11-20 編集日:2023-11-20

JavaScriptにおけるオブジェクト指向プログラミングについて解説してみようと思います。

この記事を読むと(約5分)
JavaScriptにおけるオブジェクト指向プログラミングについてイメージできます。

JavaScriptにおけるオブジェクト指向プログラミング

JavaScriptにおけるオブジェクト指向プログラミング(OOP)の考え方をいくつかの事例を通じて解説致します。

1. クラスとインスタンスの作成:

// クラスの定義
class Animal {
  constructor(name, sound) {
    this.name = name;
    this.sound = sound;
  }

  makeSound() {
    console.log(${this.name} says ${this.sound});
  }
}

// インスタンスの作成
const cat = new Animal('Cat', 'Meow');
const dog = new Animal('Dog', 'Woof');

// メソッドの呼び出し
cat.makeSound(); // 出力: Cat says Meow
dog.makeSound(); // 出力: Dog says Woof

この例では、Animalというクラスがあり、makeSoundというメソッドが定義されています。そして、このクラスからcatとdogといったインスタンスを作成し、それぞれの動物が異なる音を発するようにしています。

2. 継承とポリモーフィズム:

// 継承
class Bird extends Animal {
  constructor(name, sound, canFly) {
    super(name, sound);
    this.canFly = canFly;
  }

  fly() {
    if (this.canFly) {
      console.log(${this.name} can fly!);
    } else {
      console.log(${this.name} can’t fly.);
    }
  }
}

// インスタンスの作成
const sparrow = new Bird('Sparrow', 'Chirp', true);
const penguin = new Bird('Penguin', 'Squawk', false);

// メソッドの呼び出し
sparrow.makeSound(); // 出力: Sparrow says Chirp
sparrow.fly();       // 出力: Sparrow can fly!

penguin.makeSound(); // 出力: Penguin says Squawk
penguin.fly();       // 出力: Penguin can't fly.

BirdクラスはAnimalクラスを継承しており、新たにflyメソッドを追加しています。これにより、BirdクラスはAnimalクラスの特性を継承しつつ、追加の特性(flyメソッド)を持つことができます。

3. カプセル化:

// カプセル化
class BankAccount {
  constructor(balance) {
    let _balance = balance; // プライベート変数

    this.getBalance = function () {
      return _balance;
    };

    this.deposit = function (amount) {
      _balance += amount;
      console.log(Deposited ${amount}. New balance: ${_balance});
    };

    this.withdraw = function (amount) {
      if (_balance >= amount) {
        _balance -= amount;
        console.log(Withdrawn ${amount}. New balance: ${_balance});
      } else {
        console.log('Insufficient funds.');
      }
    };
  }
}

// インスタンスの作成
const account = new BankAccount(1000);

// メソッドの呼び出し
console.log(Balance: ${account.getBalance()}); // 出力: Balance: 1000
account.deposit(500); // 出力: Deposited 500. New balance: 1500
account.withdraw(200); // 出力: Withdrawn 200. New balance: 1300
account.withdraw(1500); // 出力: Insufficient funds.

この例では、BankAccountクラスがカプセル化されており、_balance変数がプライベート変数として扱われています。外部から直接アクセスできないようになっており、代わりに公開されたメソッド(getBalance、deposit、withdraw)を通じて操作されます。

これらの事例を通じて、JavaScriptにおけるオブジェクト指向プログラミングの基本的な概念を理解することができるでしょう。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。