1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クラス、インスタンス、オブジェクト、メソッド、プロパティのつながり

Last updated at Posted at 2024-11-20

はじめに

JavaScriptにおけるオブジェクト指向プログラミングに密接に関連している用語とそれぞれのつながりをまとめました。


1. クラス (Class)

  • クラスとは:
    • オブジェクトの設計図です。
    • プロパティ(データ)やメソッド(機能)を定義するためのひな形です。
    • 実際に使うためには、クラスから「インスタンス」を作成します。

class Product {
    constructor(title, price) {
        this.title = title; // プロパティ
        this.price = price; // プロパティ
    }

    // メソッド
    displayInfo() {
        return `${this.title}: $${this.price}`;
    }
}

2. インスタンス (Instance)

  • インスタンスとは:
    • クラスをもとに作成された具体的なオブジェクトのことです。
    • インスタンスはクラスのプロパティやメソッドを引き継ぎます。
    • new キーワードを使って作成します。

const product1 = new Product("Laptop", 1000); // クラスからインスタンスを作成
const product2 = new Product("Phone", 500); // 別のインスタンス
  • ポイント:
    • product1product2 は、それぞれ Product クラスのインスタンスです。
    • product1product2 は同じクラスを基にしているが、異なるデータを持つ独立したオブジェクトです。

3. オブジェクト (Object)

  • オブジェクトとは:
    • プロパティ(データ)メソッド(機能) を持つデータ構造のことです。
    • JavaScriptではほぼすべてがオブジェクトであり、クラスのインスタンスもオブジェクトの一種です。

// クラスから作られたインスタンスはオブジェクト
console.log(product1 instanceof Object); // 出力: true

// 通常のオブジェクト
const obj = { key: "value" };
console.log(obj instanceof Object); // 出力: true
  • クラスとオブジェクトの違い:
    • クラスはオブジェクトを作成するための「設計図」。
    • オブジェクトはクラスから作成された「実体」。

4. プロパティ (Property)

  • プロパティとは:
    • オブジェクトが持つデータのことです。
    • クラスで定義されたプロパティは、インスタンスの中に保存されます。

console.log(product1.title); // 出力: Laptop
console.log(product2.price); // 出力: 500
  • プロパティの特徴:
    • クラス内で定義されると、各インスタンスが独自の値を持つことができます。

5. メソッド (Method)

  • メソッドとは:
    • オブジェクトに属する関数のことです。
    • クラス内で定義されたメソッドは、インスタンスを通じて呼び出すことができます。

console.log(product1.displayInfo()); // 出力: Laptop: $1000
console.log(product2.displayInfo()); // 出力: Phone: $500
  • メソッドの特徴:
    • メソッドはクラスやオブジェクトに関連した処理を定義します。
    • インスタンスごとにメソッドを使って異なるデータを処理できます。

全体のつながり

  1. クラスはオブジェクトを作成するための設計図です。
    • プロパティ(データ)とメソッド(機能)を定義します。
  2. インスタンスはクラスをもとに作られた具体的なオブジェクトです。
    • 各インスタンスはクラスが定義するプロパティとメソッドを持ちます。
  3. プロパティはオブジェクトが持つデータで、インスタンスごとに異なる値を持つことができます。
  4. メソッドはオブジェクトが持つ機能で、インスタンスごとにプロパティの値に基づいて異なる結果を返します。

まとめ

以下の図でこれらの関係を示します:

クラス (設計図)
 └── プロパティ (title, price)
 └── メソッド (displayInfo)

↓ インスタンス化 (new)

インスタンス (具体例: product1)
 └── プロパティ (title: "Laptop", price: 1000)
 └── メソッド (displayInfo: "Laptop: $1000")

インスタンス (具体例: product2)
 └── プロパティ (title: "Phone", price: 500)
 └── メソッド (displayInfo: "Phone: $500")

このように、クラス → インスタンス → オブジェクト の関係性を理解することで、プロパティやメソッドを効果的に使えるようになります。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?