[Java] クラスとインスタンス
こんにちは。
クラスとインスタンスについて解説します。
インスタンスは「オブジェクト」とも言いますが、ここではインスタンスと表記します。
Javaやその他オブジェクト指向言語を学ぶ際に一つの壁となるのが、この「クラス」と「インスタンス」の違いを理解することだと思います。
とはいっても、それほど難しいことではありません。
ソースコードや例だけで理解しようとすると把握しづらいのですが、現実世界の事象などに置き換えてみると意外とわかりやすかったりします。
今回は、ゲームに置き換えて説明してみます。
その中でも「シミュレーションゲーム」がわかりやすいのではないでしょうか。
まず、プログラム言語の概念で言うと、クラスとインスタンスは以下となります。
●クラス
インスタンスの元となる設計図です。
クラスの構造の通りにインスタンスは動作します。
●インスタンス(=オブジェクト)
クラスの実体です。
インスタンスを生成することで、クラスを動作させることができます。
何個でも生成できます。
大戦略などのシミュレーションゲームに置き換えてみます。
大戦略では、戦車や飛行機などの兵器が存在します。
しかし、全ての兵器を最初から使用できるわけではありません。
新しい兵器を生産できるようになるためには設計図が必要です。(ゲーム内用語は別ですが言い換えています)
例えば新型戦車の設計図から、新型戦車を10台生産する。
この場合、「新型戦車の設計図」がクラス、「新型戦車」がインスタンスです。
●コード例
では、実際にソースコードを書いてみます。
ここでは、「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();
}
}
以上で解説は終了です。
スポンサードリンク
関連記事
-
-
[Java] StringBuilderの使い方(Stringを連結するクラス)
今回は、可変長文字列クラスのStringBuilderを紹介します。 固定長文字列クラスのSt
-
-
[Java] Apache POIでExcel操作!
Apache POIをまずは使ってみようという方(自分も含め)のメモ 導入 Maven htt
-
-
[Java][Servlet][JSP] ServletからJSPへの転送
こんにちは。 今回は、「Servletでリクエストを受けて、JSPで表示する。」方法を解説しま
-
-
[Java][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成
こんにちは、keiです。 今回は、Mavenが利用可能な動的Webプロジェクトの作成について解
-
-
[Java][JSP] EclipseでのJSP作成
今回は、Eclipseを用いてJSPを作成してみます。 まず、Eclipseを起動します。
-
-
[Java] Javaのインストール(プログラム開発・入門用)
Javaのコードを書きたい!! という目的のためのJavaのインストール方法と、コマンドラインでの
-
-
[Java][Servlet] EclipseでのJavaServlet作成
こんにちは、今回はEclipseを使用してJavaServletを作成します。 Eclipse
-
-
[Java][Spring] DIする方式を細かく見てみる① @ScopeでのSingletonとPrototypeの指定
今回は@Scopeアノテーションを用いて、オブジェクトをDIする方式を選択してみます。 ●解説
-
-
[Java][Framework] Spring Bootを使って、Spring MVC速攻開発してみる!(DB接続あり)
STSインストール STSは、EclipseにSpring関連のいろいろな機能を詰め込んだオールイ
-
-
[Java] 文字列の分割(split)
こんにちは。 今回は、文字列の分割について解説します。 昔はStringTokenize