【Java】「オブジェクト指向」の具体例

はじめに

オブジェクト指向とは、ざっくりと言うと、ものを渡すようにしてプログラミングの処理を行なっていくことです。

この記事では具体的なコードを見せながらJavaのオブジェクト指向について書いていきます。

目次

今回作成したもの

「東海3県それぞれの名前 + ようこそ」と出力するプログラムを作成しました。

出力結果

愛知県・岐阜県・三重県が、オブジェクト指向におけるオブジェクト(もの)です。

Prefのインスタンスを書いているApp.java

インスタンスには、オブジェクトが渡された後の内容を書いています。

class App {
    public static void main(String[] args) {
        Pref aichiPref = new Pref("愛知県");
        aichiPref.Hello();

        Pref gihuPref = new Pref("岐阜県");
        gihuPref.Hello();

        Pref miePref = new Pref("三重県");
        miePref.Hello();
    }
}

Prefのクラスを書いているPref.java

クラスには、オブジェクトが渡される前の内容を書いています。

class Pref {
    public String name;

    Pref(String name) {
        this.name = name;
    }

    public void Hello() {
        System.out.println(this.name + "へようこそ");
    }
}

処理の流れ

  1. 愛知県のインスタンスの生成
  2. 愛知県のHelloメソッドが呼ばれる
  3. 岐阜県で1~2を行う
  4. 三重県で1~2を行う

上記のような流れで、「〇〇県へようこそ」という文章が3回出力されています。

愛知県のインスタンスの生成

Prefのインスタンスを書いている下記コード(App.java)の赤字の部分で、引数に愛知県を渡したインスタンスをaichiPrefという変数に代入しています。

class App {
    public static void main(String[] args) {
        Pref aichiPref = new Pref("愛知県");
        aichiPref.Hello();

        Pref gihuPref = new Pref("岐阜県");
        gihuPref.Hello();

        Pref miePref = new Pref("三重県");
        miePref.Hello();
    }
}

この時、下記コード(Pref.java)の赤字部分では、nameというインスタンスフィールドを定義した後、コンストラクタを定義しています。

class Pref {
    public String name;

    Pref(String name) {
        this.name = name;
    }

    public void Hello() {
        System.out.println(this.name + "へようこそ");
    }
}

コンストラクタは、インスタンス生成時に実行される処理です。

先ほど引数に渡された「愛知県」がthis.nameとしてセットされるというイメージです。

愛知県のHelloメソッドが呼ばれる

下記コード(App.java)の赤字部分で、aichiPrefのHelloメソッドが呼ばれます。

class App {
    public static void main(String[] args) {
        Pref aichiPref = new Pref("愛知県");
        aichiPref.Hello();

        Pref gihuPref = new Pref("岐阜県");
        gihuPref.Hello();

        Pref miePref = new Pref("三重県");
        miePref.Hello();
    }
}

Helloメソッドは下記コード(Pref.java)の赤字部分です。

class Pref {
    public String name;

    Pref(String name) {
        this.name = name;
    }

    public void Hello() {
        System.out.println(this.name + "へようこそ");
    }
}

System.out.println()で、()の中身が出力されます。

今回、this.nameには、インスタンス生成時に引数として渡した「愛知県」が入っています。

「this.name = 愛知県」と「へようこそ」が合わさって、
「愛知県へようこそ」が出力されます。

岐阜県へようこそ

岐阜県でも愛知県と同じように「岐阜県へようこそ」としたいので、下記コード(App.java)の赤字部分を追加しました。

class App {
    public static void main(String[] args) {
        Pref aichiPref = new Pref("愛知県");
        aichiPref.Hello();

        Pref gihuPref = new Pref("岐阜県");
        gihuPref.Hello();

        Pref miePref = new Pref("三重県");
        miePref.Hello();
    }
}

三重県へようこそ

三重県も同様に追加しました。

class App {
    public static void main(String[] args) {
        Pref aichiPref = new Pref("愛知県");
        aichiPref.Hello();

        Pref gihuPref = new Pref("岐阜県");
        gihuPref.Hello();

        Pref miePref = new Pref("三重県");
        miePref.Hello();
    }
}

どれだけ都道府県が増えても、インスタンスを生成して、Helloメソッドを呼ぶだけで、同じ処理(今回で言うと “〇〇県へようこそ” を出力すること)が実行できます。

コメントを残す

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