【Java-31】複数クラスに分割したプログラム

初心者向けJava講座

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

こんぶ
こんぶ

こんにちは。こんぶです。

今日は、「複数クラスに分割したプログラム」について学んでいきましょう!

私の自己紹介等は、こちらからどうぞ。

また、Javaの学習を最初から進めていきたい方は、Java-1から見てみてくださいね。

ソースファイルを分割する

今までは1つのソースファイルに複数のクラスを記載していましたが、クラスごとに別のソースファイルとして保存することもできます。

実際の現場では複数人で開発を行うことが多いため、複数のクラスに分割することで並行して開発を進めることができます。

ソースファイルを分割した際には、別のクラスからメソッドを呼び出す部分の記述を「メソッド名(引数リスト)」から「ファイル名.メソッド名(引数リスト)」に変更する必要があります。

このファイル名とメソッド名の間にある「.(ドット)」は「~の」という意味です。

なぜファイル名も指定しなければいけないのかというと、同じソースファイル内に指定のメソッドがないため、どのメソッドを呼び出せばいいのか分からないからです。

早速ですが、次のコードをmainメソッドとそれ以外のメソッドに分割する例を見てみましょう。

mainメソッドのソースファイルは「Main.java」、それ以外のメソッドのソースファイルは「Calculate.java」というファイル名として分割してみると、次のようになります。

「Main.java」でcalculateSumメソッドとcalculateProductメソッドを呼び出す際に、「Calculate.calculateSum」「Calculate.calculateProduct」のように指定しています。

このように、メソッドを呼び出す部分の記述を「ファイル名.メソッド名(引数リスト)」に変更する必要があるのですね。

ちなみに、このコードを実行すると次のように画面に表示されます。

複数クラスのコンパイル・プログラム実行方法

1つのソースファイルをjavacコマンドでコンパイルする時は「javac ファイル名」のように指定するのですが、複数のソースファイルをjavacコマンドでコンパイルするには「javac 1つ目のファイル名 2つ目のファイル名」のように指定する必要があります。(3つ以上のソースファイルの場合にも、同じように半角スペースを開け「3つ目のファイル名」…とつなげていきます)

また、プログラムの実行方法は「java クラス名」となります。このクラス名には、mainメソッドが含まれているクラスの名前を指定します。

JVMはmainメソッドを起点にプログラムを実行するため、mainメソッドだけの指定で、他のクラスも使用する時に呼び出して実行してくれます。

Javaプログラムの完成品

複数クラスに分割したプログラムの場合は、Javaプログラムの完成品は複数のクラスファイルとなるため、納品したりする際には全てのクラスファイルを渡す必要があります。

また、実行の際に必要になるため、mainメソッドが含まれているクラス名も伝える必要があります。

JARファイル

Javaには複数のファイルを1つにまとめるファイル形式として「JAR」というものがあります。

JARファイルはZIPファイルのようなアーカイブファイルで、JDKに付属するjarコマンドでも作成できます。

今回のまとめ

★複数のクラスに分割することで並行して開発を進めることができる

★ソースファイルを分割した際には、別のクラスからメソッドを呼び出す部分の記述を「ファイル名.メソッド名(引数リスト)」に変更する

★「.(ドット)」は「~の」という意味

★複数のソースファイルをjavacコマンドでコンパイルするには「javac 1つ目のファイル名 2つ目のファイル名」のように指定する

★プログラムの実行は「java クラス名」のようにmainメソッドが含まれているクラスの名前を指定する

★複数クラスに分割したプログラムの場合、Javaプログラムの完成品は複数のクラスファイルとなるため、全てのクラスファイルを渡しmainメソッドが含まれているクラス名も伝える

JAR:複数のファイルを1つにまとめるJavaのファイル形式

次回は、「パッケージの利用」について説明していこうと思います。

今回の内容のチャレンジ問題はこちらです→チャレンジ問題【Java-31】~複数クラスに分割したプログラム~

次の内容に進む方はこちらです→【Java-32】パッケージの利用

それでは、こんぶはじゃ~

コメント

タイトルとURLをコピーしました