Eclipseでのコーディングの基本
プロジェクトが作成できたところで、実際にコーディングを行っていきましょう。まずは、ソースファイルの作成です。
クラスファイルの作成方法
Javaでは、全てのソースコードはクラスに記述します。そのため、ソースコードファイルである.javaファイルの作成は、すなわちクラスの作成と他なりません。Eclipseでは、このクラスの作成に対して専用のダイアログを用意してくれています。それを使っていきましょう。
パッケージエクスプローラ上で、FirstJavaProjectフォルダでもsrcフォルダでもどちらでもかまいませんので、右クリックしてください。あるいは、[ファイル]メニューでもかまいません。表示されたメニューから
[新規]>[クラス]
を選択してください(図11)。
すると、図12のような新規Javaクラス作成ダイアログが表示されます。
このダイアログに必要事項を入力し、[完了]をクリックすると、.javaファイルが作成されます。ここでは、図12のように、次の情報を入力し、残りはデフォルトのまま[完了]をクリックしてください。
- パッケージ: com.example.eclipse.firstjavaproject
- 名前: HelloWorld
ここで入力した「パッケージ」は、その名称通り、このクラスを格納するパッケージの指定です。何も入力しない場合は、デフォルトパッケージ(つまりパッケージなし)に格納されますが、この方法は推奨されていません。たとえ、学習用サンプルでも何かのパッケージを指定した方がよいでしょう。
もう1つの「名前」欄は、クラス名を入力します。Javaでは、ファイル名は「クラス名.java」とする規約となっていますので、Eclipseはその規約に従い、名前欄に入力した名称でファイル、および、クラスを作成してくれます。
実際に、[完了]ボタンをクリック後、Eclipseの画面は図13のようになり、srcフォルダ内にはcom.example.eclipse.firstjavaprojectパッケージが作成され、その中にHelloWorld.javaが作成されているのが分かります。
さらに、エディタ領域にHelloWorld.javaが表示されてコーディング可能な状態となっています。しかも、リスト1のように、あらかじめpackage宣言とclass宣言が記述されており、すぐにクラス内部のコーディングを開始できるのがわかります。
package com.example.eclipse.firstjavaproject;
public class HelloWorld {
}
コーディングに便利な入力補完
ここから、作成されたHelloWorld.javaにリスト2のようにコードを追記していくことにしましょう。
package com.example.eclipse.firstjavaproject;
public class HelloWorld {
public static void main(String[] args) { // (1)
System.out.println("Hello World!"); // (2)
}
}
このコードは、標準出力に「Hello World!」を表示させる、いわゆるJavaのHelloWorldコードです。追記するのは、(1)のメソッドと(2)の行です。単純なコードのため、そのまま入力してもそれほどミスは起きませんし、手間ではありません。しかし、ここではEclipseの入力補完を味わっていただこうと思います。図14をみてください。これは、リスト2の(2)のコードの入力途中の状態です。
「System」まで入力し、「.」を入力した途端、図14のように続きの候補が表示されます。さらに、候補を選択すると、その候補のコードの意味まで表示してくれます(ただし、デフォルトは英語ですが…...)。これが、Eclipseの入力補完です。もし、表示されない場合は、入力途中のタイミングで[ctrl]+[Space]を入力することで、候補が表示されます。あとは、候補から適切なものを選択するだけです。この方法だと、大幅にコーディングの手間を省くことができます。
macOSでの[ctrl]+[Space]
Eclipseの入力補完候補表示(コンテンツアシスト)のショートカットは、[ctrl]+[Space]がデフォルトとなっています。ところが、macOSの場合は、同じショートカットに、入力ソースの切り替えが割り当てられており、こちらがOSショートカットのために優先されてしまい、候補ウィンドウが表示されません。これを回避する方法は、どちらかのショートカットを変更することです。通常は、OSを優先させるために、Eclipseのショートカットを変更します。
Eclipseのショートカットの変更は、Eclipseの設定ウィンドウで行います。設定ウィンドウの表示は、macOSの場合は[Eclipse]メニューから、Windowsの場合は[ウィンドウ]メニューから、それぞれ[設定]を選択します。表示された設定画面の左ペインから、
[一般]>[キー]
を選択します。これは、「フィルターを入力」と表示されている検索窓に「キー」と入力するとすぐに見つかります。
図15の画面が表示されるので、コマンド一覧の中から「コンテンツアシスト」を選択し(同じくフィルタで絞り込み可能)、表示された画面の[バインディング]欄に適切なショートカットを入力し、[適用して閉じる]をクリックすれば変更できます。
コードを展開してくれるスニペット
Eclipseには、コンテンツアシストのさらに強力な機能として、スニペット機能があります。Javaで標準出力に文字列を表示させるコードは、次の定型コードとなっています。
System.out.println(表示文字列);
リスト2の(2)がまさにこのコードに該当するわけですが、このような定型コードは、入力補完で次々コードを記述しなくても、一発で入力できる機能があります。リスト2の(2)の行で「sysout」と入力し、コンテンツアシストショートカットを入力してください(図16)。
すると、図17のように「System.out.println();」のように展開してくれます。
このようなキーワードを入力して、そのコードを展開してくれるパターンがEclipseにはいろいろ用意されており、リスト2の(1)のメソッド(main()メソッド)もその1つに含まれています。(1)のメソッドは、「main」と入力してコンテンツアシストショートカットを入力すれば展開します。
つまり、実はリスト2のコーディングは、
クラスの作成→main+ショートカット入力→sysout+ショートカット入力
でほとんどのコーディングができてしまうことになります。なかなかの時間短縮です。
main()メソッドの自動生成オプション
クラスを作成してからmain()メソッドを記述する方法として、main+ショートカットは非常に便利です。さらに便利な方法として、main()メソッド記述済みのクラスを作成する方法があります。図12のクラス作成ダイアログを見てください。
「どのメソッドスタブを作成しますか?」と記述されたセクションのチェックボックスの1つに[public static void main(String[] args)]というのがあります。これがまさにmain()メソッドであり、このチェックボックスにチェックを入れて[完了]をクリックすると、あらかじめmain()メソッドが記述された状態でクラスが作成されます。
