[Java] クラスとインスタンス

こんにちは。

クラスとインスタンスについて解説します。
インスタンスは「オブジェクト」とも言いますが、ここではインスタンスと表記します。

Javaやその他オブジェクト指向言語を学ぶ際に一つの壁となるのが、この「クラス」と「インスタンス」の違いを理解することだと思います。
とはいっても、それほど難しいことではありません。

ソースコードや例だけで理解しようとすると把握しづらいのですが、現実世界の事象などに置き換えてみると意外とわかりやすかったりします。

今回は、ゲームに置き換えて説明してみます。
その中でも「シミュレーションゲーム」がわかりやすいのではないでしょうか。

まず、プログラム言語の概念で言うと、クラスとインスタンスは以下となります。

●クラス
インスタンスの元となる設計図です。
クラスの構造の通りにインスタンスは動作します。

●インスタンス(=オブジェクト)
クラスの実体です。
インスタンスを生成することで、クラスを動作させることができます。
何個でも生成できます。

大戦略などのシミュレーションゲームに置き換えてみます。

大戦略では、戦車や飛行機などの兵器が存在します。
しかし、全ての兵器を最初から使用できるわけではありません。

新しい兵器を生産できるようになるためには設計図が必要です。(ゲーム内用語は別ですが言い換えています)

例えば新型戦車の設計図から、新型戦車を10台生産する。
この場合、「新型戦車の設計図」がクラス、「新型戦車」がインスタンスです。

クラスとオブジェクト1

●コード例
では、実際にソースコードを書いてみます。

ここでは、「Human」クラスからインスタンスを5個生成して名前を登録するサンプルです。
「Human」という設計図から、5人分のインスタンスを作成しています。

・Humanクラス

public class Human {

	/** 名前 */
	private String name = null;

	/**
	 * コンストラクタ
	 */
	public Human(String name){
		this.name = name;
	}

	/**
	 * 名前表示するメソッド
	 */
	public void sayMyName(){
		System.out.println("私の名前は、" + name + "です。");
	}
}

・インスタンスを作成して実行

public class Main {

	public static void main(String[] args) {

		// Humanクラスからインスタンスを5人分作成。
		Human instance1 = new Human("takeshi");
		Human instance2 = new Human("kengo");
		Human instance3 = new Human("shinji");
		Human instance4 = new Human("kaito");
		Human instance5 = new Human("yasushi");

		// インスタンスを動作させる。(登録された名前を言うだけ)
		instance1.sayMyName();
		instance2.sayMyName();
		instance3.sayMyName();
		instance4.sayMyName();
		instance5.sayMyName();
	}

}

以上で解説は終了です。

スポンサードリンク

関連記事

no image

[Java] 日付の計算方法(DateFormat、Date、Calendar)

こんにちは、kei0310です。 Javaで日付を計算する方法について解説します。 まず

記事を読む

no image

[java] 文字列の一部を切り取る方法(substring)

こんにちは。 今回は文字列の一部を切り取る方法について解説します。 具体的には、String

記事を読む

no image

[Java][基本] ループ処理(for文)

Javaのループ処理の基本である、for文を解説します。 ●文法 for( [①初期化];

記事を読む

no image

[Java][Spring] Spring3でDIしてみる!(アノテーション使用)

Spring3を使って、一番基本的な形のプログラムを作成してみます。 今回は、アノテーションを

記事を読む

no image

[Java] Javaのインストール(プログラム開発・入門用)

Javaのコードを書きたい!! という目的のためのJavaのインストール方法と、コマンドラインでの

記事を読む

no image

[Java] テキストファイルの読み込み方法

こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ

記事を読む

no image

[Java][JSP] EclipseでのJSP作成

今回は、Eclipseを用いてJSPを作成してみます。 まず、Eclipseを起動します。

記事を読む

no image

[Java][Spring] DIする方式を細かく見てみる① @ScopeでのSingletonとPrototypeの指定

今回は@Scopeアノテーションを用いて、オブジェクトをDIする方式を選択してみます。 ●解説

記事を読む

no image

[Java][MySQL] JavaからMySQLを使う方法

MySQLは、フリーでありながら商用としても使用できるパワーを持つデータベース(RDB)です。

記事を読む

no image

[Java] Apache POIでExcel操作!

Apache POIをまずは使ってみようという方(自分も含め)のメモ 導入 Maven htt

記事を読む

スポンサードリンク

Message

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

スポンサードリンク

no image
CentOSにdockerをインストールしてみた

前置き dockerをcentos7にインストールしてみました

no image
awkでのgsubを使った文字列置換(正規表現)

まえおき bashなどのシェルスクリプトで、lsした結果とかを

no image
bashで並列処理する方法(xargs)

並列処理とは 通常、意識せずにプログラムを書くと、大体の場合は

no image
AWS Redshiftの使用ストレージ容量をクエリで調べる方法

用途 AWS Redshfitのコンソールを見れば、使用中のス

no image
pythonでstorage transfer serviceを使ってみた。

準備 pythonのインストールとかする。 このあたり。

→もっと見る

  • 2022年8月
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
  • 2022年8月
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
PAGE TOP ↑