Javaのクラスとメソッドの違いとは?ゲーム風に解説。

公開 :  → 更新 :

この頃小説を読んでいなく、何か読みたいなと思っている@It_is_Rです。

Javaを勉強し始めたばかりの人は、何やら難しい単語に混乱する人も多いでしょう。その中で、クラスとメソッドって一体何が違うのと疑問を感じている人もいるのではないかと思います。
そこで今回は、Javaのクラスとメソッドの違いを分かりやすく解説しようと思います。

最初から順番に読んでいただければ、クラスとメソッドについて、理解が深まるかと思います。

Javaのクラスとメソッドは、書き方は似ていますが、全く違う役割を果たすものです。

簡単に言えば、クラスはそれぞれの役割りなどを分別しておくもの。
メソッドは、何度も使いたい処理を何度でも呼び出せる様に記述しておくものです。

言葉で言っても、意味が分かりませんよね。
それぞれがどの様な役割を果たしているのかを見ていきましょう。

eyecatch_dog

クラスとは

まず、Javaを始めたばかりの人だと、難しく考えすぎてしまう傾向にあると思います。
頭を柔らかくして単純に考えましょう。

Javaクラス物語

例えば、こんな状況を想像してください。

あなたの学校でクラス替えがありました。しかも、そのクラス替えは成績によって3つに分けられます。
優秀クラス凡才クラス底辺クラスです。

しかし、ここで底辺クラスを馬鹿にしてはいけません。
底辺クラスの成績が悪いのには理由があります。暇さえあればエ◯ゲーをしているのです。
その為、成績は悪くとも、妄想力だけはどのクラスにも負けません。

つまり、それぞれのクラスに一長一短あるわけです。
この様なクラスを作って、学年で先生を倒すのが目的です。
まとめるとこうなります。

優秀クラス:勉強熱心で、ゲームに一切興味がない為、妄想力は皆無。(防御型)
凡才クラス:勉強もゲームも両立して行う為、バランスが取れている。(バランス型)
底辺クラス:勉強は一切しないが妄想力は誰にも負けない。(攻撃型)

あなたはどれですか?
ちなみに、Rは底辺クラスです。やかましいわ。

プログラムに置き換える

では、上記の条件を一度プログラムに置き換えてみましょう。

public class Main {
	public static void main(String[] args) {

	}
}

class Yushu {
	
}

class Bonsai {
	
}

class Teihen {
	
}

3つのクラスを作りました。(Mainクラスは別として。)

最初にclassとついているのが、Javaでいうクラスです。
実行してもまだ何も起こりません。中身を何も書いてないですね。

しかし、クラスというものが少し理解出来てきませんか?
もしかすると、学校のクラスと同じ意味なのでは……?

それぞれのクラスに生徒を作る

上記のプログラムに足りないものは生徒ですよね。
クラスがあれば生徒がいるのが当然のこと。というわけで、それぞれのクラスに、男女の人数を示す変数を作ります。

public class Main {
	public static void main(String[] args) {
		Yushu y = new Yushu();
		Bonsai b = new Bonsai();
		Teihen t = new Teihen();
		
		System.out.println("優秀クラスの男子の人数は" + y.man + "人です。");
		System.out.println("優秀クラスの女子の人数は" + y.women + "人です。");
		System.out.println("凡才クラスの男子の人数は" + b.man + "人です。");
		System.out.println("凡才クラスの女子の人数は" + b.women + "人です。");
		System.out.println("底辺クラスの男子の人数は" + t.man + "人です。");
		System.out.println("底辺クラスの女子の人数は" + t.women + "人です。");
	}
}

class Yushu {
	int man = 15;
	int women = 16;
}

class Bonsai {
	int man = 17;
	int women = 13;
}

class Teihen {
	int man = 12;
	int women = 18;
}

実行結果
優秀クラスの男子の人数は15人です。
優秀クラスの女子の人数は16人です。
凡才クラスの男子の人数は17人です。
凡才クラスの女子の人数は13人です。
底辺クラスの男子の人数は12人です。
底辺クラスの女子の人数は18人です。

これで気がついた方もいるでしょう。Javaで言うクラスは、使い方によっては学校のクラスと同じ様に扱うことができるのです。
こう考えれば、Javaのクラスが身近に感じてきたのではないでしょうか?

いや、ちょっと待てよ。
さっきクラスの説明で、攻撃型とか防御型とか書いていたけど、あれは何だったんだ?

それはこの後明らかになります。

メソッドとは

メソッドはクラスと記述が似ているので、初心者の方は混乱してしまうかも知れません。
では、上のプログラムを編集してみましょう。

メソッドを記述してみる

メソッドはクラスの中に書かれます。
下のプログラムでは、攻撃か防御かを選択できる様、それぞれのクラスに2つずつのメソッドを追加しました。

public class Main {
	public static void main(String[] args) {
		Yushu y = new Yushu();
		Bonsai b = new Bonsai();
		Teihen t = new Teihen();
		
		y.Bogyo();		//優秀クラスの防御
		b.Kogeki();		//凡才クラスの攻撃
		t.Kogeki();		//底辺クラスの攻撃
	}
}

class Yushu {
	int man = 15;
	int women = 16;
	void Kogeki() {				//(1)
		System.out.println("優秀クラスの生徒たちは、先生に20ダメージを与えた。");
	}
	void Bogyo() {				//(2)
		System.out.println("優秀クラスの生徒たちは、先生から20ダメージを食らった。");
	}
}

class Bonsai {
	int man = 17;
	int women = 13;
	void Kogeki() {				//(3)
		System.out.println("凡才クラスの生徒たちは、先生に30ダメージを与えた。");
	}
	void Bogyo() {				//(4)
		System.out.println("凡才クラスの生徒たちは、先生から30ダメージを食らった。");
	}
}

class Teihen {
	int man = 12;
	int women = 18;
	void Kogeki() {				//(5)
		System.out.println("底辺クラスの生徒たちは、先生に40ダメージを与えた。");
	}
	void Bogyo() {				//(6)
		System.out.println("底辺クラスの生徒たちは、先生から40ダメージを食らった。");
	}
}

実行結果
優秀クラスの生徒たちは、先生から20ダメージを食らった。
凡才クラスの生徒たちは、先生に30ダメージを与えた。
底辺クラスの生徒たちは、先生に40ダメージを与えた。

(1)〜(6)がメソッドの開始場所です。

そして
y.Bogyo();
b.Kogeki();
t.Kogeki();
で、それぞれのメソッドを呼び出しています。

つまり、y.Bogyo();は優秀クラスの防御メソッド、b.Kogeki();は凡才クラスの攻撃メソッド、t.Kogeki();は底辺クラス攻撃メソッドを呼び出しています。

何となく、クラスとメソッドがイメージできたでしょうか?

学校のクラスだけがJavaのクラスではない

ここで勘違いしてもらいたくないのが、学校のクラスだけがJavaのクラスではないということです。
今回はクラスを分かりやすくする為に、学校のクラスに例えただけの話であり、Javaのクラスが、勇者を示す勇者クラスであってもいいのです。

ゲームだけにとらわれてはいけません。例えば、お絵描きソフトを作りたい場合、ウィンドウを作るクラス、ペンツールで線を引くクラス、新規作成を行うクラスなど、様々なクラスが考えられます。(実際にそういうクラスで作られているかどうかは分かりません。。。)

スポンサードリンク

おすすめの記事♪

宇宙一分かりやすい JavaScript のかなり詳しい基本の解説。

宇宙一分かりやすい JavaScript のかなり詳しい基本の解説。

[email protected]_is_Rです。 今回は JavaScript について、初心者の人にも分かりやすく、丁寧に解説していきます。 JavaScript と EcmaSc

Swift

【Xcode7】Swift2でMacアプリ開発。画像を読み込む為のボタンを作る。

[email protected]_is_Rです。 最近はSwiftの記事が多いと思っている人もいるのでは無いでしょうか。実はRは現在、Swiftを使ってゲーム開発のお助けアプリを

enchant.js

enchant.js でキャラクターのアニメーションを作ってみよう

前回の記事では、キャラが移動する時のアニメーションがありませんでした。 突っ立ったまま進んで行く、まるで幽霊の様な状態です。 これでは、キャラが生きてるのか死んでるのか分からない! というこ

Saya

本物にしか見えない 3DCG Saya のイラスト描いてみた。

ファイナルファンタジーの 3D 画像を小学生のときに初めて見て、ものすごく感動した @It_is_R です。 鉛筆で 3D ってどうやって描くんだろうと勘違いし、描いてました。 3DCG とい

blender

Blenderで3D美少女キャラの作り方。その4(前髪と横髪を描く。)

Blenderでの3Dキャラ制作の記事、長い期間放置して[email protected]_is_Rです。 前回までのキャラ作成は、顔ができたところまででした。 今回は。髪の毛を作っていきます。 さて、Bl

enchant.js

enchant.js でクラスを作る、激分かりやすい方法!

[email protected]t_is_Rです。 前回までの enchant.js の記事で、画像の表示やキャラの移動など、ゲーム制作には欠かせない基礎知識が身についたのではない

【アンデッド】新曲、ボカロラップ公開しました。

私はIt is R! ラップ書いたのであーる! おやつはカール! YO! @It_is_Rです。 しばらくブログの更新ができませんでしたが、ようやく更新することができました。 やっと曲作りが

Android Studio で新規プロジェクトを作成する方法。

インスタント焼きそばを作ろうとすると、なぜか焼うどんになります。 @It_is_R です。 しかも、ラーメン作ろうと思うと焼きそばができあがります。 前回、 Android Studio のイ

Adobe Photoshop CC 2015.5の最新スゴすぎる新機能を3つ紹介!!

[email protected]_is_Rです。 2016年6月20日、Adobe CCが2015.5にバージョンアップしました。 そこで今回は、Adobe Photo

bootstrap3

Bootstrap3でサイトのレイアウト。グリッドシステムの使い方と裏技。

開発中のゲームはサイト制作に入っております。@It_is_Rです。 前回に引き続き、Bootstrap3の記事です。 サイトを作るとき、CSSなどを使ってサイトのレイアウトを調節したりしますが


コメントを残す

メールアドレスが公開されることはありません。


Category

Games