[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][基本] ループ処理(for文)
Javaのループ処理の基本である、for文を解説します。 ●文法 for( [①初期化];
-
-
[Java][Spring] DIする方式を細かく見てみる① @ScopeでのSingletonとPrototypeの指定
今回は@Scopeアノテーションを用いて、オブジェクトをDIする方式を選択してみます。 ●解説
-
-
[Java][Servlet][JSP] ServletからJSPへの転送
こんにちは。 今回は、「Servletでリクエストを受けて、JSPで表示する。」方法を解説しま
-
-
[java] 文字列の一部を切り取る方法(substring)
こんにちは。 今回は文字列の一部を切り取る方法について解説します。 具体的には、String
-
-
[Java] テキストファイルの読み込み方法
こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ
-
-
[Java][MySQL] JavaからMySQLを使う方法
MySQLは、フリーでありながら商用としても使用できるパワーを持つデータベース(RDB)です。
-
-
[Java][Framework] Spring Bootを使って、Spring MVC速攻開発してみる!(DB接続あり)
STSインストール STSは、EclipseにSpring関連のいろいろな機能を詰め込んだオールイ
-
-
[Java] 文字列の分割(split)
こんにちは。 今回は、文字列の分割について解説します。 昔はStringTokenize
-
-
[Java] 日付の計算方法(DateFormat、Date、Calendar)
こんにちは、kei0310です。 Javaで日付を計算する方法について解説します。 まず
-
-
[Java][Servlet] EclipseでのJavaServlet作成
こんにちは、今回はEclipseを使用してJavaServletを作成します。 Eclipse