[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][基本] mainメソッドの書き方
こんにちはkeiです。 Javaの基本として、意外と知らないmain関数について解説します。
-
[Java][Framework] Spring BootのJPAでDB接続した際のEntityキャッシュのクリア方法
Spring BootのJPAでDBアクセスした際に、処理を一定量こなすと、Heapが足りなくな
-
[Java][Servlet] EclipseでのJavaServlet作成
こんにちは、今回はEclipseを使用してJavaServletを作成します。 Eclipse
-
[Java][MySQL] JavaからMySQLを使う方法
MySQLは、フリーでありながら商用としても使用できるパワーを持つデータベース(RDB)です。
-
[Java][Spring] Spring3でDIしてみる!(アノテーション使用)
Spring3を使って、一番基本的な形のプログラムを作成してみます。 今回は、アノテーションを
-
[Java] テキストファイルの読み込み方法
こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ
-
[Java] 日付の計算方法(DateFormat、Date、Calendar)
こんにちは、kei0310です。 Javaで日付を計算する方法について解説します。 まず
-
[Java] StringBuilderの使い方(Stringを連結するクラス)
今回は、可変長文字列クラスのStringBuilderを紹介します。 固定長文字列クラスのSt
-
[Java][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成
こんにちは、keiです。 今回は、Mavenが利用可能な動的Webプロジェクトの作成について解
-
[Java][JSP] EclipseでのJSP作成
今回は、Eclipseを用いてJSPを作成してみます。 まず、Eclipseを起動します。