【プログラミングしてみよう7】Javaのクラスとオブジェクト指向の基礎

Java

前回はメソッドを使って処理をまとめる方法を学びました。

今回は、データと処理をひとつにまとめて扱う「クラス」と、Javaの大きな特徴である「オブジェクト指向」の基礎について解説します。

これまで main メソッドの中だけでプログラムを書いてきましたが、クラスを使うことで、より整理された設計ができるようになります。

クラスの基本

これまでのサンプルでは、public class ○○Test という形でクラスを書いてきましたが、その中身は main メソッドだけのシンプルなものでした。

クラスは、本来「データ(フィールド)」と「処理(メソッド)」をひとつにまとめて表現するための仕組みです。たとえば「人」という存在を表したい場合、名前や年齢といったデータと、自己紹介をするといった処理をひとつのクラスにまとめることができます。

public class クラス名 {
    // フィールド(データ)
    型 フィールド名;

    // メソッド(処理)
    戻り値の型 メソッド名(引数) {
        // 処理
    }
}

クラスはあくまで「設計図」であり、実際に使うには new を使って「インスタンス」を作る必要があります。

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

サンプルコード(クラスの定義とインスタンス化)

ファイル作成

「Java01」フォルダに Person.java という名前でファイルを、同じフォルダに PersonTest.java という名前でファイルを作成します

コード入力

Person.java に以下のコードを入力します。

public class Person {
    String name;
    int age;

    void selfIntroduce() {
        System.out.println("私の名前は" + name + "です。年齢は" + age + "歳です。");
    }
}

次に PersonTest.java に以下のコードを入力します。

public class PersonTest {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.name = "ぱんまる";
        person1.age = 25;

        Person person2 = new Person();
        person2.name = "たろう";
        person2.age = 30;

        person1.selfIntroduce();
        person2.selfIntroduce();
    }
}

コンパイル

javac Person.java PersonTest.java

実行

java PersonTest

実行結果は次のようになります。

私の名前はぱんまるです。年齢は25歳です。
私の名前はたろうです。年齢は30歳です。

コードの解説

Person.java で定義した Person クラスは、name(名前)と age(年齢)という2つのフィールド(データ)と、selfIntroduce(自己紹介をする)というメソッドを持っています。これが「設計図」にあたります。

PersonTest.java の中では、new Person() とすることで、設計図をもとに実際の「インスタンス(実体)」を作成しています。person1person2 はどちらも Person クラスから作られたインスタンスですが、nameage にはそれぞれ別の値を入れることができます。

person1.name = "ぱんまる"; のように、インスタンスの後に . をつけてフィールドにアクセスし、値を代入しています。同様に person1.selfIntroduce(); のように、. をつけてメソッドを呼び出すことができます。

このように、同じ Person クラスから作られたインスタンスでも、それぞれが独立したデータを持つことができるのがクラスの大きな特徴です。前回までに学んだ変数・繰り返し処理・配列・メソッドは、すべてこのクラスの中で組み合わせて使うことができます。

たとえば、複数の Person インスタンスを配列にまとめて、for文で順番に自己紹介させることもできます。

Person[] people = {person1, person2};
for (int i = 0; i < people.length; i++) {
    people[i].selfIntroduce();
}

まとめ

クラスは、データ(フィールド)と処理(メソッド)をひとつにまとめて表現するための「設計図」です。new を使うことで、その設計図から「インスタンス」を作り、実際にプログラムの中で使うことができます。同じクラスから作られたインスタンスでも、それぞれが独立したデータを持てる点が大きな特徴です。これまで学んできたif文・繰り返し処理・配列・メソッドは、すべてクラスの中で組み合わせて活用できます。ここまでで、Javaプログラミングの基本的な要素は一通り学んだことになります。

2026/06/16(火) ぱんまる

コメント

タイトルとURLをコピーしました