[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] StringBuilderの使い方(Stringを連結するクラス)

今回は、可変長文字列クラスのStringBuilderを紹介します。 固定長文字列クラスのSt

記事を読む

no image

[Java] Apache POIでExcel操作!

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

記事を読む

no image

[Java][Servlet][JSP] ServletからJSPへの転送

こんにちは。 今回は、「Servletでリクエストを受けて、JSPで表示する。」方法を解説しま

記事を読む

no image

[Java][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成

こんにちは、keiです。 今回は、Mavenが利用可能な動的Webプロジェクトの作成について解

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

[Java][Servlet] EclipseでのJavaServlet作成

こんにちは、今回はEclipseを使用してJavaServletを作成します。 Eclipse

記事を読む

no image

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

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

記事を読む

no image

[Java][Framework] Spring Bootを使って、Spring MVC速攻開発してみる!(DB接続あり)

STSインストール STSは、EclipseにSpring関連のいろいろな機能を詰め込んだオールイ

記事を読む

no image

[Java] 文字列の分割(split)

こんにちは。 今回は、文字列の分割について解説します。 昔はStringTokenize

記事を読む

スポンサードリンク

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のインストールとかする。 このあたり。

→もっと見る

  • 2024年9月
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30  
  • 2024年9月
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30  
PAGE TOP ↑