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

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

スポンサードリンク

関連コンテンツ

オススメ記事

Gitの使い方。バージョン管理する流れを、実際にやってみよう

こんにちは。@It_is_Rです。 前回「【Mac】Gitのダウンロードとインストールの手順」では、Gitのインストーラを公式サイトからダウンロードしてインストールする方法と、Homebrew

fish shell

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

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

JavaScriptマンガ講座。初心者でも痛いほど理解できる変数の使い方。(実践編)

押入れが部屋になっている@It_is_Rです。 今回の記事はJavaScriptマンガ講座、2回目となりました。 この企画はJavaScriptをフザケまくって覚えようというものです。

Android StudioをMacにインストールする方法

Android Studioを使って、Androidアプリ開発を行っていきましょう! 今回は Android Studioをインストールする手順を解説します。 Android Studio

zsh

zsh のインストール方法と、うまく起動しない時の対処法。

かっこいいものが大好きな@It_is_Rです。 そこで今回は、ターミナルをかっこよくする為の方法を、何回かの記事に分けて書いてみたいと思います。 今回、第一回目は zsh ( Z Shell

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

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

scratch

Scratchでシューティングゲームを作ろう! 小学生からのプログラミング入門

さて、プログラミングの勉強をはじめていきましょう! 前回の「Scratchでじゃんけんゲームを作ろう!」では、じゃんけんゲームの作り方を学びました。今回は、もうちょっと本格的(ほんかくてき)な

WordPressのテーマを自作してみよう。テーマ開発の方法を徹底解説!

WordPressテーマの自作方法を紹介していきます。 今回はテーマ作成における知識や、ツール、ファイル構成、実際の作り方などを書いていきます。 WordPressのテーマを自作する上

VCCW

VCCW で、超簡単に WordPress のローカル開発環境を整える方法。

考えすぎて間違った方向へ進む、@It_is_Rです。 WordPress のローカル開発環境を作りたい時、 VCCW を使うと便利です。 今回は、 その方法を紹介します。 VCC

WordPress のテーマ開発に絶対必須な gulp プラグイン9選!

3Dゲームに酔ってしまう@It_is_Rです。 今回は、テーマを自作するのに必須な gulp プラグインの紹介と使い方について書いていきます。 gulp について gulpは、sas

コメントをどうぞ!(コメントは承認後に反映されます)

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です