Java のクラス定義の基本について

Java のクラス定義の基本について

Java では、クラスはオブジェクト指向プログラミングの中心的な要素です。ここでは、Java のクラス定義について基本から詳しく説明し、例を交えて解説します。

クラスとは何か

クラスは、オブジェクトを作成するための設計図またはテンプレートです。クラスを使用してオブジェクトを生成し、そのオブジェクトには状態(データ)と振る舞い(メソッド)が含まれます。

例えば、人を表すクラスを作成する場合、そのクラスには名前や年齢(状態)と、話すや歩くといった動作(振る舞い)を定義できます。

クラスの定義

クラスは class キーワードを使用して定義します。基本的な構文は次の通りです:


class クラス名 {
    // フィールド(データや属性)
    // メソッド(動作や機能)
}
    

例:


class Person {
    String name;  // 名前(フィールド)
    int age;      // 年齢(フィールド)

    void sayHello() {  // 挨拶をする(メソッド)
        System.out.println("こんにちは、私は " + name + " です。");
    }
}
    

フィールドとメソッド

フィールドはクラスのデータや属性を表し、メソッドはそのクラスの動作や機能を定義します。

例:


class Car {
    // フィールド
    String model;
    int year;

    // メソッド
    void startEngine() {
        System.out.println(model + " のエンジンが始動しました。");
    }

    void stopEngine() {
        System.out.println(model + " のエンジンが停止しました。");
    }
}
    

この例では、modelyear がフィールドであり、startEnginestopEngine がメソッドです。

コンストラクタ

コンストラクタは、オブジェクトを生成するときに呼び出される特別なメソッドです。クラス名と同じ名前で定義され、戻り値を持ちません。

例:


class Animal {
    String species;

    // コンストラクタ
    Animal(String species) {
        this.species = species;
    }

    void makeSound() {
        System.out.println(species + " が音を立てています。");
    }
}
    

使用例:


Animal cat = new Animal("猫");
cat.makeSound();  // 出力: 猫 が音を立てています。
    

アクセス修飾子

アクセス修飾子を使用して、クラスやそのメンバーの可視性を制御できます。

  • public: どこからでもアクセス可能。
  • private: 同じクラス内でのみアクセス可能。
  • protected: 同じパッケージ内またはサブクラスからアクセス可能。
  • デフォルト(修飾子なし): 同じパッケージ内でのみアクセス可能。

例:


class Example {
    public int publicField;    // 公開フィールド
    private int privateField;  // 非公開フィールド

    public void setPrivateField(int value) {
        privateField = value;
    }

    public int getPrivateField() {
        return privateField;
    }
}
    

完全なクラスの例

最後に、これまで説明した内容をすべて含む完全なクラスの例を示します:


class Book {
    private String title;  // タイトル
    private String author; // 著者
    private int pages;     // ページ数

    // コンストラクタ
    public Book(String title, String author, int pages) {
        this.title = title;
        this.author = author;
        this.pages = pages;
    }

    // メソッド
    public void displayInfo() {
        System.out.println("タイトル: " + title);
        System.out.println("著者: " + author);
        System.out.println("ページ数: " + pages);
    }

    // アクセサメソッド
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}
    

使用例:


Book book = new Book("ハリーポッター", "J.K.ローリング", 500);
book.displayInfo();
book.setTitle("新しいタイトル");
System.out.println("更新後のタイトル: " + book.getTitle());
    

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です