1. HOME
  2. »
  3. プログラミング・Web
  4. »
  5. Java
  6. »
  7. Javaのクラスとメソッドの違いとは?ゲーム風に解説。

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のクラスが、勇者を示す勇者クラスであってもいいのです。

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

スポンサードリンク

関連コンテンツ

オススメ記事

ブログSEOに絶対的効果!人を惹きつける記事タイトルの考え方のコツ

ブログのSEO対策において、もっとも重要なのは記事の内容、そしてタイトルです。 情報を探している人はまずタイトルを見ます。つまりタイトルによって人がその記事をクリックするかどうかが決まります。

wordpress

WordPress にウィジェット(サイドバー)を追加する方法。

サイドバーというより、頭がパーな@It_is_Rです。やかましいわ。 WordPress テーマ自作シリーズ、早くも第6回目です。 今回はウィジェット(サイドバー)を追加する方法を紹介します。

【Android Studio】TextView 文字の色やサイズ、書体を変更する方法。

サイズは大きいほど、押しがいがあります。@It_is_Rです。 スマホのボタンの話ですよ。何を考えてたんですか? Androidアプリ開発、8回目となりました。 今回はこれまでに学習した T

ファイルを分けるべよ!

小学生からのJavaScript入門。ファイルを分けて管理してみよう!

小学生からのJavaScript入門講座(にゅうもんこうざ)、第5弾です。 前回はりこちゃんを方向キーで操作(そうさ)することができるようになりました。 しかしプログラムを作ってくと、コンピュ

これまでのプログラム全体をクラスを使って作るべ!

小学生からのJavaScript。プログラム全体をクラスを使って作ってみよう!

小学生からのプログラミング講座(こうざ)、第13弾です。 前回はプログラミングにおける、クラスの使い方を学びました。しかし、まだクラスをどうやって使えばいいのか、ピンときていないかも

JavaScriptマンガ講座。条件分岐(if文)の真偽値による使い方。(実践編)

生まれも育ちもド田舎、@It_is_Rです。 JavaScriptマンガ講座、第3回目です。 笑いあり、涙あり(?)のマンガで、JavaScriptを覚えようというものです。 今回は条件

gulp

gulpでsassをcssにコンパイル。インストール&便利な使い方。

幸せそうな人を見ると、転べって思います。@It_is_Rです。 Webページを制作するとき、sassをcssに変換して使用することが多いと思います。 今回は、gulpを使ってsassをcssに

WordPress

無料で広告なしのWordPressサイトを立ち上げる方法。

猫を飼っています。でも犬派です。何か文句ありますか? …まぁ、最終的に動物全般が好きなんです。爬虫類から哺乳類、鳥類まで好きです。動物を飼っている人、今すぐ写真を@It_is_Rに送り付けて下さい。

【Android Studio】 GridLayout の使い方。複雑なレイアウトを表現する方法

スマホの充電がいつの間にか無くなっている@It_is_Rです。 Androidアプリ開発、10回目となりました。 前回、様々なレイアウトの使い方を紹介しましたが、今回はその中でもちょっと難しい

FC2 blog customize

FC2ブログ ”最強” カスタマイズ入門講座。ブログ全体の幅を変更。

現実社会では殆ど言葉を発しない@It_is_Rです。だって、厄介なことになりたくないじゃん。 今回も前回に引き続き、FC2ブログカスタマイズの記事です。前回、ヘッダーのサイズを変更しましたが、ブ

コメントをどうぞ!

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