JavaScript

【JavaScript】クラスやコンストラクタってよく聞くけど何なのさ?

takahide

おはようございます。タカヒデです。

プログラミングを学習しているとクラスってよく聞きますよね。

PythonでもJavaScriptでもJavaでも…多くの言語で使われています。

しかし、いざ言語化しようとしたときに上手く説明できますか?

私はざっくり「色んな変数やメソッドをセットにしたもの」くらいに思っているのですが、これが正しいのかどうかも分かっていません。

ということで本日は、JavaScriptにおける「クラス」そして「コンストラクタ」について言語化し、記載方法を解説していきます。

こんな人にオススメ
  • JavaScriptにおける『クラス』『コンストラクタ』が理解できない
  • 『classの定義方法』『constructorメソッド』の記載方法を知りたい

同じようによくわかっていない方はぜひ本記事を参考にしてください。

クラス(class)とは?

さっそくクラスとは何ぞや?というところを見ていきましょう。

クラスとは、「プロパティやメソッドを定義したモノ(オブジェクト)の設計書」です。

「オブジェクト」「プロパティ」「メソッド」わかりますか?
↓に解説しているので参考にしてください。

オブジェクト・プロパティ・メソッドとは?
  • オブジェクト…1つのモノを表現する複数情報(プロパティ)の集合体
  • プロパティ…『名前(key)』と『値(value)』がセットになったもの
  • メソッド…オブジェクトのプロパティに格納された関数(与えられた情報を基に処理を行い、結果を返す仕組み)

イメージしやすくするために以下の図を見てみましょう。

クラスの中にプロパティやメソッドを定義し、クラスから作成されたオブジェクト(インスタンス)で使用することができます。

インスタンスごとにプロパティの情報を変更したり、共通の処理をメソッドにまとめることで関連する情報やメソッドをひとまとめに管理できることが特徴です。

何となくイメージできましたか?

ちなみに、JavaScriptにおいては厳密にいうとクラスというものは存在しないそうです。

クラス構文はあるものの、「内部で扱っているものは本物のクラスではなく、オブジェクトをクラスっぽく扱っているもの」みたいなのでプチ知識として覚えておいてください。

クラスの使用①:クラスの定義

ここからは実際にクラスを使用する方法を理解していきましょう。

まずは「クラスの定義」をする方法です。

これは「class命令」で宣言する必要があります。

記載方法はこんな感じです。

//記載方法

class クラス名 { クラスの中身 }

記載例も見てみましょう。

class testClass {
    //クラスの中身を記載
}

シンプルにクラスを定義するだけであれば記載する内容はこれだけです。

簡単ですよね。

でもこれだけでは使い方もよく分からないと思うので続けてみていきましょう。

クラスの使用②:インスタンス化

定義したクラスを使用するためには「インスタンス化」をする必要があります。

これも難しい用語なので以下に解説を載せておきますね。

インスタンス化とは?
  • インスタンス化…既存のオブジェクトの複製を作ること

ではインスタンス化の方法を見てみましょう。

//記載方法

let 変数名 = new クラス名()

以下が記載例です。

class testClass {
    //クラスの中身を記載
}

let test = new testClass();

オブジェクトを使用する時のインスタンス化と同じ『new演算子』を使用します。

これで先ほど作成した『testClass』クラスのインスタンスが生成され、変数『test』に代入されました。

ちょっとずつクラスが使えるようになってきましたね。

クラスの使用③:クラスの初期化(コンストラクタ)

最後に行うのが「コンストラクタ」です。

コンストラクタとは、「インスタンスで利用するオブジェクトを生成し、初期化を行う特別なメソッド」のことです。

この作業は初期化するものが特にない場合には省略することができます。

記載方法はこんな感じです。

//記載方法

constructor(引数){
   コンストラクタの中身
}

記載例も見てみましょう。

class testClass {
    constructor(name) {
        this.name = name;
    }
}

let test = new testClass("Takahide");

console.log(test.name);
//実行結果:Takahide

『testClass』クラスの『name』プロパティをコンストラクタで初期化しました。

ようやく使っている感が出てきましたね。

クラスは主に同じ種類のオブジェクトをたくさん作るときに作成します。

まだこの例だけではイマイチ、ピンと来ないかもしれませんが様々なコードを書いていくかで覚えていきましょう。

まとめ

以上が「JavaScriptにおけるJavaScriptにおける「クラス」そして「コンストラクタ」について言語化し、記載方法の解説」でした。

まとめ
  • クラスとは、プロパティやメソッドを定義したオブジェクトの設計書
  • クラスの中にプロパティやメソッドを定義しインスタンスで使用する
  • コンストラクタとは、インスタンスで利用するオブジェクトを生成し、初期化を行う特別なメソッド

この記事でクラスについて少しでも理解が深まれば幸いです。

お疲れさまでした。

ABOUT ME
タカヒデ
タカヒデ
ITを楽しく勉強中
通信会社の企画職で働く30代 非エンジニアでありながら半分趣味でITエンジニアリングやプログラミングを学習中 IT初心者が楽しいと思えるように発信することを目指しています ↓Xもやっているのでフォローしてね
記事URLをコピーしました