Javaのクラスとは?書き方や呼び出し方をわかりやすく解説!

Javaを学び始めたのだけど、クラスって何ですか?意味や書き方について教えて欲しい。
こんなお悩みにお答えします。
この記事をお読みいただくことで、「Javaのクラスとは何か」「クラスの書き方」の理解が深まりますよ。

僕は現役Javaエンジニアで、大阪の受託開発企業で開発をしています。Javaの最難関資格も保有していますので、初心者の方にもわかりやすく解説しますね。
Javaは初心者には難しい言語と言われていますが、基礎を正しく身につければそこまで難しい言語ではありません。
ではみていきましょう!
Javaのクラスの概要
まずJavaのクラスの全体像を解説します。
- クラスとは
- クラスの書き方
- クラスの命名規則
- フィールドとは
- クラスとメソッドの違い
順に見ていきましょう。
クラスとは
クラスとは、プログラムの設計図のようなものです。
例えば何かものを作るときも設計図を書きますよね。身近にあるもので言えば、車やプラモデルなど。
Javaも、クラスという名の設計図を書き、その中にいろいろな機能を付け加えていきます。といわれても、まだイメージがつきにくいですよね。
クラスの書き方を次で解説します!
クラスの書き方
実際にJavaのクラスの書き方を見ていきましょう。Javaのクラスは下記のように記述します。
修飾子 class クラス名 {
処理・・・
}
public class Main {
}
Mainの部分がクラス名です。
クラスの付け方には命名規則がありますので、次で見ていきましょう。
Javaのクラス名の命名規則
先程Mainというクラス名を付けましたが、クラスの名前には命名規則があります。
それが下記の通り。
- 1文字目は大文字
- 数字から始めることはできない
- 2文字目以降は小文字
- 単語が変わるごとに1文字目は大文字
- 同一パッケージで同じクラス名はつけられない
- 記号はドルマーク($)かアンダーバー(_)はOK
- 予約語はNG
- 文字数は無制限
1文字目は大文字で2文字目以降は小文字なので「Main」であればOKです。数字から始めることはできないので、たとえば「1Main」はNGです。単語が変わるごとに2文字目は大文字なので、たとえば「MainJapan」といった感じで「J」が大文字になります。
クラスの命名規則は、基本的に上記を覚えておけばOKです。
Javaのクラスのフィールドとは
フィールドとは、クラスの中に定義される、すべてのメソッドで使用することができる変数のことを言います。メンバ変数とも言われています。
では実際のコードを見てみましょう。フィールドの書き方の基本は下記の通り。
[アクセス修飾子] [データの型] 変数名;
クラスの中に記述してみましょう。
public class Test1 {
public string str; //これがフィールド
}
上記の通りですね。

クラス名の直下に記載していますが、こうすることでtest1のメソッド内でも、クラスで定義した変数を使うことができます。
メソッド内に変数を書くと、そのメソッド内でのみ使用できます。
Javaのクラスとメソッド違い
クラスとメソッドの違いは一体なんでしょうか?
そもそもメソッドとは何かというと、処理をひとまとめにしたものです。たとえるなら「機能」というとわかりやすいかもしれません。
仮に「家」というクラスあったとすると、その家の中にある「テレビ」や「エアコン」といった家具家電がメソッドとなります。
このようにクラスとメソッドは明確に違います。
では実際にメソッドを書いてみましょう。
戻り値型 メソッド名(引数) {
処理
}
public class House {
public static void tv() {
}
}
「House」というクラスの中に、「tv」というのがあります。このtvがメソッドです。
家(クラス)の中に、どんどん家具家電(メソッド)を追加していくことで、作りたいものを実現できます。
Javaのメソッドは以下の記事で詳しくまとめておりますので、ぜひ参考にしてみてください。

Javaのクラスの呼び出し方
Javaのクラスで別のクラスを呼び出す方法について解説していきます。
呼び出し方
Javaは、場合によっては別のクラスを呼び出したい時があります。
別クラスを呼び出す方法は下記の通り。
class Test1 {
public static void main(String[] args) {
System.out.println("test1を実行");
new Test2().test2(); //Test2クラスのtest2メソッドを呼び出す
new Test3().test3(); //Test3クラスのtest3メソッドを呼び出す
}
}
class Test2 {
public void test2() {
System.out.println("test2を実行");
}
}
class Test3 {
public void test3() {
System.out.println("test3を実行");
}
}
別のクラスを呼ぶときは、「new クラス名();」「new コンストラクタ名;」とすればOKです。別クラスのメソッドを呼ぶときは、「new クラス名().メソッド名();」OKです。
書き方は他にもありますが、ここでは上記を例に解説しました。
では実行してみましょう。
実行結果:
test1を実行
test2を実行
test3を実行
このように、Test1クラスから別クラスであるTest2クラスとTest3クラスを呼び出すことができました。
Javaのクラスのnew演算子とは
先程、別のクラスを呼び出す際に「new」がでてきましたが、なぜnewをする必要があるのでしょうか?newの役割は、クラスをインスタンス化(実体化)するために使います。
本記事の序盤でお伝えしたように、クラスとは設計図のようなものです。設計図のみではただの紙切れですよね。設計図をもとに家を作ったり車を作ったりしなければなりません。
そこでnewをして設計図をもとに実体化するということです。
Javaのクラスのインポートとは
Javaは別のパッケージにあるクラスを呼び出す際には、import文を記述しなければなりません。import文の書き方は以下の通り。
import パッケージ名 クラス名
importを理解するには、パッケージを理解する必要があるので、簡単に説明しますね。
パッケージとは、クラスを機能ごとにまとめる仕組みのことを言います。
たとえば、クラスは同じ名前を2つ以上つけることはできませんが、パッケージを分けることで、同じ名前をつけられるようになります。
大規模な開発になると、同一のクラス名を使うことがあるため、パッケージを分けておけば良いということです。
ではパッケージはどう書くかというと以下の通り。
package フォルダ階層名;
フォルダの階層名のところには、クラス名の手前までの名前を記述します。
仮にTest1クラスが「aフォルダ内のBフォルダ内のCフォルダ内」にあるとするならば、下記のように記載すればOkです。
package a.b.c;
class Test1 {
public static void main(String[] args) {
System.out.println("test1を実行");
}
}
Test2クラスが「aフォルダ内のbフォルダ内のcフォルダ内のdフォルダ内」にある場合は以下の通り。
package a.b.c.d;
class Test2 {
public void test2() {
System.out.println("test2を実行");
}
}
Test3クラスも同様に。
package a.b.c.d.e;
class Test3 {
public void test3() {
System.out.println("test3を実行");
}
}
ではTest1クラス内でimport文を使って、Test2クラスとTest3クラスを呼んでみましょう。復習ですがimport文は以下のように書くのでしたね。
import パッケージ名 クラス名
ではTest2クラスとTest3クラスを呼んでみましょう。
package a.b.c;
import a.b.c.d.Test2;
import a.b.c.d.e.Test3;
class Test1 {
public static void main(String[] args) {
System.out.println("test1を実行");
new Test2().test2();
new Test3().test3();
}
}
package a.b.c.d;
class Test2 {
public void test2() {
System.out.println("test2を実行");
}
}
package a.b.c.d.e;
class Test3 {
public void test3() {
System.out.println("test3を実行");
}
}
上記の通り。
import文は開発環境によっては、別のクラスを記述した際に自動的に入力される場合もありますが、書き方は覚えておきましょう。
あと同じパッケージ内にあるクラスは、import文は不要です。
Javaのクラス:まとめ
Javaのクラスの基本について解説しました。
本記事で解説したクラスの基本を押さえておけば、実務のプログラミングでも必ず役立ちます。ぜひ繰り返し読んで覚えてみてくださいね。
以下の記事では、Javaエンジニアのための学習ロードマップを解説していますので、あわせて読んでみてください。
