Javaのクラスとオブジェクト指向プログラミング基礎

先生

Javaのクラスとオブジェクト、難しそう?大丈夫!この記事でオブジェクト指向の扉を開けよう!

Javaのクラスとは?オブジェクト指向の入り口

Javaはオブジェクト指向プログラミング(OOP)言語です。OOPの重要な概念の一つが「クラス」です。クラスは、オブジェクトの設計図のようなもので、オブジェクトが持つべき属性(データ)とメソッド(振る舞い)を定義します。

例えば、「車」というクラスを考えてみましょう。車は、色、メーカー、モデルなどの属性を持ち、走る、止まる、曲がるなどのメソッドを持ちます。

public class Car {
    String color;
    String maker;
    String model;

    void run() {
        System.out.println("走る");
    }

    void stop() {
        System.out.println("止まる");
    }
}

この例では、Carというクラスを定義し、color, maker, modelという属性と、run(), stop()というメソッドを定義しています。

オブジェクトとは?クラスから生まれる実体

オブジェクトは、クラスを元に生成される実体です。クラスが設計図であるのに対し、オブジェクトは実際に存在する車そのものです。

Javaでは、newキーワードを使ってオブジェクトを生成します。

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car();
        myCar.color = "red";
        myCar.maker = "Toyota";
        myCar.model = "Corolla";

        System.out.println("車の色は" + myCar.color + "です。");
        myCar.run();
    }
}

この例では、CarクラスからmyCarという名前のオブジェクトを生成し、その属性に値を設定し、メソッドを呼び出しています。

クラスの構成要素:属性(フィールド)とメソッド

クラスは、属性(フィールド)とメソッドという2つの主要な構成要素を持ちます。

属性は、オブジェクトの状態を表すデータです。上記のCarクラスの例では、color, maker, modelが属性です。

メソッドは、オブジェクトの振る舞いを定義するコードブロックです。Carクラスの例では、run(), stop()がメソッドです。

public class Dog {
    String name;
    int age;

    void bark() {
        System.out.println("Woof!");
    }

    int getAgeInDogYears() {
        return age * 7;
    }
}

このDogクラスでは、nameageが属性、bark()getAgeInDogYears()がメソッドです。

コンストラクタ:オブジェクトの初期化

コンストラクタは、オブジェクトが生成される際に自動的に呼び出される特殊なメソッドです。オブジェクトの初期化処理を行うために使用されます。

コンストラクタの名前はクラス名と同じである必要があります。

public class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

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

この例では、PersonクラスにPerson(String name, int age)というコンストラクタを定義しています。thisキーワードは、オブジェクト自身の属性を参照するために使用されます。

public class Main {
    public static void main(String[] args) {
        Person john = new Person("John", 30);
        john.introduce();
    }
}

まとめ:オブジェクト指向プログラミングへの第一歩

この記事では、Javaにおけるクラスとオブジェクトの基本的な概念について解説しました。クラスはオブジェクトの設計図であり、オブジェクトはクラスから生成される実体です。クラスは属性とメソッドを持ち、コンストラクタはオブジェクトの初期化を行います。これらの概念を理解することで、オブジェクト指向プログラミングの基礎を築くことができます。