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

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

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

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

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

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

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

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

eyecatch_dog

目次
  1. クラスとは
  2. メソッドとは
  3. 学校のクラスだけがJavaのクラスではない

クラスとは

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

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

スポンサードリンク

関連コンテンツ

オススメ記事

【Xcode7】Swift2でMacアプリ開発。Storyboardでボタンを作る。

喧嘩するほど仲がいいとは言いますが、喧嘩する相手がいません。友達がいないということでしょうか。@It_is_Rです。 前回、StoryboardでMacのウィンドウに文字を表示しました。しかし、

fish shell

Fish shellの使い方。プラグインなしでもここまで可愛くできる!

先日、Macをフォーマットしたため、今まで構築したきた開発環境が消えました。 といっても、バックアップはとってあるので戻すことはできるのですが、せっかく綺麗に全部消えたので、もう一度作り直そうかな、

【Xcode7】Storyboardを使ってMacアプリ開発に挑戦。

何だか今日はトイレが近い。@It_is_Rでございます。 現在開発中の人魚のゲームは今ストーリーを練っている所です。まだまだ時間がかかりそうです。 さて、Rは今、Macアプリ開発を勉強中なので

【Xcode7】Swift2使ってみた。playgroundで遊びながら覚える。

最近は押入れの中で寝るのが日課の@It_is_Rです。 押入れは寝心地がいいです。部屋も押入れ分だけ広くなるし。 SwiftはAppleが出しているプログラミング言語です。Swiftを使うこと

キャラクター

JavaScriptマンガ風講座。初心者でも絶対に理解できる入門編!!

プログラミングは奥が深い。。。@It_is_Rです。 Flashがスマホから使えなくなり、多くのサイトにHTML5が使われ、ブラウザ上でのアニメーションはJavaScriptが多く使われるように

【CSS設計】ボタンを作って覚える。機能ごとに分けて作る重要性。

手が回らない、頭が回らない、口が回らない。@It_is_Rです。 CSSはある程度大雑把に書いても動かすことができます。しかし、CSSを覚える上で一番難しい部分と言えばCSS設計でしょう。 パ

Homebrew

Homebrewの使い方。よく使うコマンド一覧と詳しい解説まとめ

※追記 この記事は2018/04/30に最新の情報に書き直しました。 人生をもう一度やり直したいとつくづく思う@It_is_Rです。 今回はHomebrewについての記事を書いて

【Bootstrap 4】パンくずリスト(Breadcrumb)を作ってみよう!

Bootstrap4の使い方、第4回目となりました。 サイトを作っていると必然的に必要になるのがパンくずリストです。 パンくずリストは、サイト訪問者が今どのページにいるのかということを分かりや

Yarn

Yarn の使い方。インストールの方法から使い方まで解説します。

最近ドラクエにはまっている@It_is_Rです。PS1 のやつです。ドラクエⅦ。 関係ない話はさておき、今回は Yarn の使い方を解説していきたいと思います。 Yarn とは

enchant.jsのロード画面を、好きな画像に変更する方法。

今日は爆睡していました。@It_is_Rです。 enchant.jsのロード画面はカッコわるいなとずっと思っていました。「あ、これenchant.jsで作ったんだな」って思われてしまうじゃないで

コメントをどうぞ!

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