[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][Framework] Spring BootのJPAでDB接続した際のEntityキャッシュのクリア方法
Spring BootのJPAでDBアクセスした際に、処理を一定量こなすと、Heapが足りなくな
-
-
[java] 文字列の一部を切り取る方法(substring)
こんにちは。 今回は文字列の一部を切り取る方法について解説します。 具体的には、String
-
-
[Java][Spring] DIする方式を細かく見てみる① @ScopeでのSingletonとPrototypeの指定
今回は@Scopeアノテーションを用いて、オブジェクトをDIする方式を選択してみます。 ●解説
-
-
[Java][MySQL] JavaからMySQLを使う方法
MySQLは、フリーでありながら商用としても使用できるパワーを持つデータベース(RDB)です。
-
-
[Java][JSP] EclipseでのJSP作成
今回は、Eclipseを用いてJSPを作成してみます。 まず、Eclipseを起動します。
-
-
[Java][基本] mainメソッドの書き方
こんにちはkeiです。 Javaの基本として、意外と知らないmain関数について解説します。
-
-
[Java][Framework] Spring Bootを使って、Spring MVC速攻開発してみる!(DB接続あり)
STSインストール STSは、EclipseにSpring関連のいろいろな機能を詰め込んだオールイ
-
-
[Java] Javaのインストール(プログラム開発・入門用)
Javaのコードを書きたい!! という目的のためのJavaのインストール方法と、コマンドラインでの
-
-
[Java] 文字列の分割(split)
こんにちは。 今回は、文字列の分割について解説します。 昔はStringTokenize
-
-
[Java] StringBuilderの使い方(Stringを連結するクラス)
今回は、可変長文字列クラスのStringBuilderを紹介します。 固定長文字列クラスのSt