カテゴリ: JavaSilver試験対策 更新日: 2026/07/03

Javaのクラスとインスタンスを徹底解説!初心者にもわかるオブジェクト指向

030
Javaのクラスとインスタンス

先生と生徒の会話形式で理解しよう

生徒

「Javaでクラスとインスタンスの違いがよくわからないんですが、どういう関係なんですか?」

先生

「クラスは設計図、インスタンスはその設計図を元に作られた実体のようなものですよ。具体例を見てみましょう。」

1. クラスとインスタンスの基礎

1. クラスとインスタンスの基礎
1. クラスとインスタンスの基礎

Javaでは、クラスはプログラムの設計図として機能します。一方、インスタンスはその設計図から実際に作られる具体的なデータを持つオブジェクトです。

例えば、次のコードを見てください。


public class Product {
    private int price = 100;

    public void setPrice(int price) {
        this.price = price;
    }

    public int getPrice() {
        return this.price;
    }
}

このコードは、商品の価格を管理するための設計図(クラス)を定義しています。このクラスを元に、複数の商品のデータを作成することができます。

2. インスタンスを生成する方法

2. インスタンスを生成する方法
2. インスタンスを生成する方法

クラスからインスタンスを作るには、newキーワードを使います。以下の例を見てください。


public class Main {
    public static void main(String[] args) {
        Product item1 = new Product();
        Product item2 = new Product();
        item2.setPrice(200);
        System.out.println(item1.getPrice());
    }
}

このコードでは、Productクラスから2つのインスタンスを生成しています。それぞれのインスタンスは独立しており、別々のデータを保持できます。

3. 実行結果の解説

3. 実行結果の解説
3. 実行結果の解説

上記のプログラムを実行すると、以下のような結果が得られます。


100

理由を解説します。item1はデフォルト値の100のままです。一方で、item2は値を200に変更しましたが、item1には影響がありません。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. クラスとインスタンスの関係を図解で理解

4. クラスとインスタンスの関係を図解で理解
4. クラスとインスタンスの関係を図解で理解

クラスとインスタンスの関係は以下のように理解できます。

  • クラス:設計図
  • インスタンス:設計図から作られた具体的なオブジェクト

以下はそのイメージです:

  • クラスを基にインスタンスを作成
  • インスタンス間でデータが独立

5. 初心者が理解すべきポイント

5. 初心者が理解すべきポイント
5. 初心者が理解すべきポイント

クラスとインスタンスの違いを理解するには、以下のポイントを押さえましょう。

  • クラスは設計図であり、実際には動作しない
  • インスタンスはメモリ上に生成される動作可能なオブジェクト
  • インスタンスごとにデータが異なるため、柔軟なプログラムが可能

これらを意識すると、オブジェクト指向のプログラミングに慣れることができます。

6. フィールドとメソッドの役割

6. フィールドとメソッドの役割
6. フィールドとメソッドの役割

クラスには主にフィールドメソッドという2つの要素があります。 フィールドはデータを保持するための変数であり、メソッドは処理を実行するための機能です。

次のコードを見てみましょう。


public class User {
    String name; // フィールド

    public void sayHello() { // メソッド
        System.out.println("Hello " + name);
    }
}

この例では、nameがフィールドでユーザーの名前を保持しています。 sayHelloメソッドは、その名前を使ってメッセージを表示する役割を持っています。

7. インスタンスごとにデータが分かれる仕組み

7. インスタンスごとにデータが分かれる仕組み
7. インスタンスごとにデータが分かれる仕組み

クラスから複数のインスタンスを作成した場合、それぞれのインスタンスは独立したデータを持ちます。 つまり、あるインスタンスの値を変更しても、他のインスタンスには影響しません。

次の例を確認してみましょう。


public class User {
    String name;
}

public class Main {
    public static void main(String[] args) {
        User user1 = new User();
        User user2 = new User();

        user1.name = "Taro";
        user2.name = "Hanako";

        System.out.println(user1.name);
        System.out.println(user2.name);
    }
}

このプログラムでは、user1user2はそれぞれ別のインスタンスです。 そのため、名前のデータも独立して管理されます。

8. コンストラクタを使ったインスタンス初期化

8. コンストラクタを使ったインスタンス初期化
8. コンストラクタを使ったインスタンス初期化

インスタンスを作成するときに初期値を設定するには、コンストラクタを使用します。 コンストラクタは、インスタンス生成時に自動的に呼び出される特別なメソッドです。

次のコードを見てみましょう。


public class Product {

    int price;

    public Product(int price) {
        this.price = price;
    }
}

public class Main {
    public static void main(String[] args) {
        Product item = new Product(300);
        System.out.println(item.price);
    }
}

この例では、Productクラスのコンストラクタを使って、 インスタンス作成時に価格を設定しています。 コンストラクタを利用することで、オブジェクトの初期状態を簡単に管理できます。

まとめ

まとめ
まとめ

Javaのクラスとインスタンスは、オブジェクト指向プログラミングの基礎を理解する上で非常に重要な概念です。この記事では、クラスを設計図、インスタンスをその設計図から作られる実体と捉えることで、初心者にも分かりやすく説明しました。複数のインスタンスを生成して、それぞれが独立してデータを持つ仕組みが、柔軟なプログラムを実現する鍵です。

例えば、商品を管理するプログラムでは、Productクラスを使って、価格や名前などの商品ごとのデータを簡単に管理できます。以下のサンプルコードでは、複数のインスタンスが独立したデータを保持する様子を改めて確認しましょう。


public class Product {
    private String name;
    private int price;

    public Product(String name, int price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return this.name;
    }

    public int getPrice() {
        return this.price;
    }
}

public class Main {
    public static void main(String[] args) {
        Product item1 = new Product("Laptop", 1000);
        Product item2 = new Product("Tablet", 500);
        
        System.out.println(item1.getName() + " costs $" + item1.getPrice());
        System.out.println(item2.getName() + " costs $" + item2.getPrice());
    }
}

実行結果では、それぞれの商品が独立した情報を持つことが確認できます。これはクラスとインスタンスの仕組みによるものです。


Laptop costs $1000
Tablet costs $500

このように、クラスとインスタンスの関係を正しく理解することで、現実世界の事象をプログラムで表現する力が身に付きます。

先生と生徒の振り返り会話

生徒

「クラスとインスタンスの違いがよく分かりました!それぞれが独立しているから、データ管理がしやすいんですね。」

先生

「その通りです。オブジェクト指向の強みは、現実世界の物をプログラムで簡単にモデル化できるところです。」

生徒

「これから、インスタンスを使った応用的なプログラムにも挑戦してみます!」

先生

「いいですね。インスタンスを使いこなせば、複雑なプログラムもスムーズに作れるようになりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaのクラスとは何ですか?クラスの役割を初心者向けに教えてください。

Javaのクラスは、プログラムにおける設計図のようなもので、オブジェクトを作るためのテンプレートです。クラスには変数やメソッドなどの情報が定義され、これを基にインスタンス(実体)を生成します。

Javaのインスタンスとは何ですか?クラスとの違いは何ですか?

Javaのインスタンスとは、クラスを基に作られた実体のことで、実際にメモリ上に存在するオブジェクトです。クラスは設計図、インスタンスはその設計図から作られた具体的なオブジェクトという関係です。

Javaでクラスとインスタンスの違いを簡単に覚える方法はありますか?

クラスは設計図、インスタンスはその設計図から作られた実物というイメージで覚えると分かりやすいです。例えば「Product」というクラスから「item1」「item2」といった複数のインスタンスを作ることができます。
JavaSilver試験対策の一覧へ
新着記事
Python
NumPyのdtypeとは?データ型の意味と仕組みを初心者向けに解説
NumPyのdtypeとは?データ型の意味と仕組みを初心者向けに徹底解説
Dart
Dartのクラスの作り方!定義・インスタンス生成の基礎
Dartのクラスの作り方を完全解説!初心者でも理解できるクラス定義とインスタンス生成の基礎
Java
Javaの同一性と同値性
Javaの同一性と同値性をわかりやすく解説!初心者向けの基礎知識
AWS
【AWS】s3 lsコマンドの使い方まとめ【オプション・ワイルドカード・日付指定】
【AWS】s3 lsコマンドの使い方まとめ【オプション・ワイルドカード・日付指定】
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】S3の料金体系まとめ!無料枠・課金ポイント・見積もり方法まで
【AWS】S3の料金体系まとめ!無料枠・課金ポイント・見積もり方法まで

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク