第1回 EclipseでJavaプログラミング超入門

小山博史
2004/5/29



主な内容
プログラミングの手順
Eclipseはマルチな開発環境
EclipseとJava2 SDKを入手する

Java2 SDKをインストールする
Eclipseをインストールする

 本連載は、これからプログラミングについて学びたいと考えている初心者を対象とした記事です。無償で入手できる開発環境「Eclipse」を使い、プログラミングの基礎を学びます。使用するプログラミング言語はJavaになりますが、オブジェクト指向についてはあまり説明しません。まずは自分の手を動かして本連載の内容を実践していただき、プログラミングとJava言語に慣れていただくのが、本連載の目的です。

 さて、プログラミングの基礎を学ぶのになぜEclipseを使うのかというと、次のような理由があります。

  1. GUIツールなので、コマンドプロンプトのコマンドを覚えなくても使える
  2. 1つのウィンドウ内でプログラミングに必要な作業ができる
  3. プログラム開発を効率よく行うための支援機能が多い
  4. 多くのJavaプログラマに人気があり、使っている人が多い

  コマンドベースのツールを組み合わせてプログラミングを学ぼうとすると、プログラミング以外のところでの知識が多く必要になり、つまずいてしまう場合があります。しかし、Eclipseを使えばそんな心配はありません。初心者でもプログラミングに集中することができるのです。

プログラミングの手順

 プログラミング言語を使ってプログラムを記述(コーディング)します。これを「ソース・コード」と呼び、普通はテキストファイルに保存します。そして、ソース・コードが保存されたファイルをソースファイルと呼びます。

 ここで、Java言語は、人間にとっては比較的分かりやすく記述されています(人間が解釈しやすい言語を「高級言語」または「高水準言語」と呼びます)が、コンピュータではそのまま実行することができません。

 コンピュータが実行できるようにするためには、ソース・コードに対してコンパイルという処理を行い、オブジェクトコードと呼ばれるものを生成します。このコードは、コンピュータが解釈・実行できるものです(図1)。Javaの場合、オブジェクトコードを「Javaバイトコード」と呼びます。オブジェクトコードは、バイナリファイルとして保存されます。

 実際にこのプログラムを動作させるには、補助記憶装置(通常はハードディスク)に保存されているファイルを読み込んで主記憶装置(メインメモリ)へロードして実行させます(図2)。これらプログラムの実行を普通はハードウェア上でするのですが、Javaの場合は特殊なことを行っています。難しい理屈はここでは説明しませんが、ハードウェアの上にソフトウェアで実現された仮想のハードウェアがあって、その上で動作すると覚えておいてください(仮想のハードウェアを「Java仮想マシン(Java Virtual Machine)」と呼びます)。Java Virtual Machineは、JavaVMと略されることが多いので、本連載ではJavaVMと表記します。また、JavaVM上でプラグラムを実行することをインタプリタ方式と呼びます。インタプリタ方式は、Javaに限って作られた方式ではありませんが、Javaはインタプリタ方式で実行されると覚えておいてください。

Eclipseはマルチな開発環境

 さて、プログラム作成と実行の手順を理解したところで、次には何が必要かを考えてみましょう。ソースコードを編集するためのエディタやソースコードをコンパイルするためのコンパイラといったものが必要になります。プログラムの不具合を調べるツール(「デバッガ」と呼びます)や、動作確認のためにプログラムの実行環境といったものも必要になります。Eclipseには、これらをすべて簡単に使えるような環境が用意されています。

 Eclipseのようにプログラム開発に必要な各ツールの機能を統一感のある操作方法で利用できるものを、統合開発環境(IDE)といいます。

 Eclipseは、正確にいうと開発環境のための基盤(プラットフォーム)となるものなので、JavaだけでなくC/C++などのプログラム開発もできる、いわば“マルチな開発環境”です。そのため、ダウンロードサイトを見るといくつもの種類があって驚きます。ですが、今回はJavaの開発環境があればよいので、Eclipse SDKバージョンを使うことにします。このEclipse SDKバージョンには、Eclipse Platform、Java Development Tools(JDT)、Plug-in Development Environmentといったものが含まれているので、これがあればJavaプログラムの開発ができます。

EclipseとJava2 SDKを入手する

 Eclipseの動作には、Javaの実行環境(JRE)か開発環境(Java2 SDK)が必要です。かつ、これらのバージョンは1.3か1.4でなければなりません。ここでは記事執筆時点での最新版であるJava2 SDK 1.4を使うことにします。日本語のドキュメントもダウンロードしておきましょう。Eclipseには、記事執筆時点で最も情報が多い2.1系の最新版を使うことにします。まずは表1の手順に従って必要なファイルをダウンロードしてください。

表1 ダウンロードするファイルと入手先

ダウンロードするファイル 入手先(URLと入手方法)
Java2 SDKの本体
j2sdk-1_4_2_04-windows-i586-p.exe
http://java.sun.com/j2se/1.4.2/ja/download.html
[J2SE v 1.4.2_04 SDK]の項目から入手
Java2 SDKのドキュメント
j2sdk-1_4_0-doc-ja.zip
http://java.sun.com/j2se/1.4.2/ja/download.html
[日本語版 J2SE v 1.4.0 ドキュメント]の項目から入手
Eclipseの本体
eclipse-SDK-2.1.3-win32.zip
http://www.eclipse.org/
左側にあるメニューの[downloads]をクリックし、[Japan]のftpサイトから入手。 筆者は以下から入手
ftp://ftp.ring.gr.jp/pub/misc/eclipse/downloads/
drops/R-2.1.3-200403101828/
Eclipseの言語パック
eclipse2.1.2.1-SDK-win32-LanguagePackFeature.zip
http://www.eclipse.org/
左側にあるメニューの[downloads]をクリックし,[Japan]のftpサイトから入手。 筆者は以下から入手
ftp://ftp.ring.gr.jp/pub/misc/eclipse/downloads/
drops/L-2.1.2_Translations-200312151300/

 インストール作業は、Java2 SDK、Eclipseの順に行います。ZIPファイルを展開するには、マウスの右ボタンでファイルをクリックすると表示されるポップアップメニューで[すべて展開]をクリックします。

Java2 SDKをインストールする

 Java2 SDKをインストールしましょう。j2sdk-1_4_2_04-windows-i586-p.exeをマウスの左ボタンでダブルクリックするとインストールウィザードが表示されます。この指示に従ってインストールを行います。使用許諾契約書が表示される画面では契約書を読んで、[使用許諾契約書の条項に同意します]をクリックしてから[次へ]ボタンをクリックします(画面1)。後は、表示される値のままでインストールを行ってください。インストールが終了したら、C:\j2sdk1.4.2_04へJava2 SDKがインストールされているのを確認しましょう。

画面1 Java2 SDK ライセンス

 ドキュメントは別にインストールしないといけません。j2sdk-1_4_0-doc-ja.zipを展開するとj2sdk-1_4_0-doc-jaディレクトリが作成されます。ここにあるdocsディレクトリをC:\j2sdk1.4.2_04の直下へ移動しておきましょう。動作確認をするためには、[スタート]メニューから[プログラム]→[アクセサリ]→[コマンドプロンプト]を実行しコマンドプロンプトを起動します。そして、以下のように実行します。Javaのバージョンが表示されるはずです。

> C:\j2sdk1.4.2_04\bin\java -version
java version "1.4.2_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05)
Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode)

Eclipseをインストールする

 次にEclipseをインストールします。eclipse-SDK-2.1.3-win32.zipを展開するとeclipse-SDK-2.1.3-win32というディレクトリが作成されます。この中にあるeclipseというディレクトリをCドライブの直下(C:\eclipse)へ置いてください。

 次に、Eclipseのメニューを日本語化する作業を行います。これには「言語パック」と呼ばれるものを適用します。2.1.3用の言語パックはありませんが、2.1.2用の言語パックがそのまま利用できるので、それを使います。

 eclipse2.1.2.1-SDK-win32-LanguagePackFeature.zipを展開すると、eclipse2.1.2.1-SDK-win32-LanguagePackFeatureというディレクトリが作成されます。この中にあるeclipseディレクトリをそのまま、C:\eclipseへ上書きコピーします。こうすると、C:\eclipse\featuresとC:\eclipse\pluginsの中に言語パックのファイルを追加できます。

 ここまでの作業を終えたら、C:\eclipseディレクトリにあるeclipseをマウスの左ボタンでダブルクリックしてください。すると、スプラッシュ画面が表示された後、日本語版のEclipseが起動します。


画面2 起動時に表示されるスプラッシュ画面

 インストール直後に始めてEclipseを起動する際、スプラッシュ画面が表示されている間、内部では、ある初期化処理が行われています(C:\eclipse\workspaceというディレクトリが作成されるなど)が、Javaの学習には直接関係ないのでここでは詳細には触れません。初期化処理が行われるため、起動までに少し時間がかかります。起動すると、以下の画面が表示されます。

第2回 Eclipseの基本操作に慣れる

プログラム作成の準備、「プロジェクト」の作成

 最も簡単なJavaのプログラムをコンパイルするところまで作業を行ってみて、実際に動作するかを確認してみましょう。

参考 コンパイル
ソースコードから、コンピュータが実行できるオブジェクトコードと呼ばれるものを生成する処理のことです。ソースコードは人間にとって理解しやすいものですが、2進数値しか解釈できないコンピュータには理解できません。オブジェクトコードは、コンピュータが解釈・実行できるものです。Javaの場合、オブジェクトコードを「Javaバイトコード」と呼びます。オブジェクトコードは、バイナリファイルとして保存されます。Javaの場合、そのファイルを「クラスファイル」と呼びます。

 まずは、「プロジェクト」の作成です。ここで突然聞き慣れない言葉が登場しましたが、Eclipseでプログラミングを行う際には、必ず事前にプロジェクトを作成することになります。プログラミングの学習と直接関係ないことなのですが、Eclipseを使って学習する以上覚えていただかなくてはなりません。いまの時点では、EclipseでJavaを学習する際の準備作業なのでおまじない程度に覚えてください(もう少しプロジェクトについて詳しく知りたい方は、「参考 プロジェクト」を読んでください)。

 今回は「Sample」という名前でプロジェクトを作成します。メニューの[ファイル]→[新規]→[プロジェクト]を指定します(画面1)。


画面1 新規プロジェクトの作成 (クリックすると拡大)

参考 プロジェクト
プロジェクトとは、企画とか計画という意味です。普通は、会社で新しいプログラムを開発するときには、プロジェクトを組んでチームのメンバーを集めることになります。そういったチーム開発に対応できるようにということから、Eclipseでは[プロジェクト]単位でプログラムを開発するようになっています。Eclipseの[プロジェクト]では、開発するプログラムに適した環境設定をしたり、必要なファイルをまとめて管理したりできます。例えば、プログラムのソースコードを記述したファイルや、それをコンパイルすると出来上がるクラスファイルをどのフォルダに置いておくかの設定ができたり、[プロジェクト]からソースコードを簡単に参照できたりします。

 [新規プロジェクト]という名前のダイアログが開きます。これはプロジェクトを作成するためのウィザードです。まず、左のウィンドウから[Java]を選択し、次に右のウィンドウから[Javaプロジェクト]を選択します。そして、[次へ]ボタンをクリックします(画面2)。


画面2 プロジェクトの選択

 [新規Javaプロジェクト]というダイアログが開きます。[プロジェクト名]に「Sample」と入力しましょう(画面3)。最後に[終了]ボタンをクリックします。


画面3 プロジェクト名の入力

 すると、「この種類のプロジェクトは、Javaパースペクティブに関連しています。このパースペクティブに今すぐ切り替えますか?」という文章が表示されたダイアログが開きます。[はい]ボタンをクリックします(画面4)。


画面4 パースペクティブ切り替えの確認

 ここで「パースペクティブ」という聞き慣れない言葉が登場しました。Eclipseでは、作業内容によって画面レイアウトや表示されるビューを変更することができます。ここでは、Javaプロジェクトを新規に作成したので、Javaプロジェクトの開発に適したパースペクティブ(perspectiveは英語で「見方」という意味)へEclipseの見た目を変更するということになります。

 Eclipse画面の左上をよく見ると、最初起動したときにあったリソースパースペクティブの下にJavaパースペクティブが追加され選択されていることが分かるはずです(画面5)。


画面5 アイコンに「J」と表記されたJavaパースペクティブが追加される

参考 パースペクティブ
日ごろ、読者の皆さんは自分の机をどうやって使っていますか? 狭い日本では作業別に部屋を用意したり、机を用意したりすることは大変です。ですから、勉強するとき、工作するとき、お茶を飲むとき、と何をするかによって机の上を整理し、置くものを変えているのではないでしょうか。このように作業内容によって、机の上に出しておく道具や物を変えるのと同じように、Eclipseでは作業内容によって画面に表示される情報を切り替えることができるようになっています。作業内容に適したパースペクティブがいくつか用意されていて、切り替えが簡単にできるようになっているのです。とても便利ですね。

プログラムの作成

 さて、プロジェクトができました。プロジェクトができたといっても入れ物ができただけで、実際のプログラムはこれから作らなくてはいけません。ということで、プログラムを作成しましょう。

Javaはオブジェクト指向言語なので、プログラムの最小単位はクラスになります。つまり、Javaでプログラムを作成しようとしたら、少なくとも1つのクラスを作成しなければなりません。ここでは、「クラスとは何か」といった概念についてはあまり気にしないで、とにかく動かしてみるということで説明を進めていきます。

 [パッケージ・エクスプローラー]の[Sample]をマウス右ボタンでクリックしてポップアップメニューを表示します。そのメニューで[新規]→[クラス]を指定します(画面6)。


画面6 クラスの新規作成 (クリックすると拡大)

 すると、[新規Javaクラス]ダイアログが表示されるので、[名前]にPrintと入力し、[どのメソッド・スタブを作成しますか?]のところにある[public static void main(String[] args)]をチェックして、[終了]ボタンをクリックします(画面7)。


画面7 新規Javaクラス

 すると、PrintクラスのソースファイルであるPrint.javaファイルが自動的に出来上がり、エディタに以下のソースコードが表示されます。

エディタにソースコードが自動生成される

コードを書いて実行してみる

 それでは、自動的に作成されたソースコードを編集してみましょう。今回は実行したら数字のゼロ“0”を表示するというプログラムを作成してみましょう。そのためには、「System.out.println(0);」という文字列をソースコードに追加するだけです。以下の画面の水色に表示された行を参考に、この1行を追加してみましょう。

 編集を終えたら、エディタのタブを見てください。表示されている[Print.Java]が[*Print.Java]となっています。これは、コードを編集したが、まだ保存していない(すなわち、保存しなさいという注意)ということを示しています。

 いよいよ、実際にプログラムを実行してみましょう。プログラムを実行するためには、Print.javaをエディタに表示したまま、Eclipseのメニューから[実行]→[次を実行]→[Javaアプリケーション]を指定します(画面8)。


画面8 Javaアプリケーションの実行 (クリックすると拡大)

 ファイルを保存していないので、保存するファイルを確認するダイアログが表示されます(画面9)。


画面9 リソースの保管

 ここでは、そのまま[OK]ボタンをクリックしてください。そうすると、Eclipseの画面の下の部分に[コンソール]が表示されて、そこへ実行結果が出力されます。数字の“0”が出力されていれば成功です(画面10)。


画面10 下部のコンソールに実行結果の“0”が表示される (クリックすると拡大)

 さて、ここまでで、プロジェクトの作成からソースコードの編集、プログラミングの実行を行いました。今後、プログラミングの学習をするうえで、これら一連の操作は頻繁に行うことになりますので、取りあえずは、おまじないと思って覚えてください。

第3回 Javaの変数の型と宣言を理解する

 インターネット上のショッピングWebサイトなどで、カートに品物を追加すると、現在の買い物に必要な総額が表示されるというのをよく見かけませんか? この総額は、品物を追加したり削除したりするたびに変わります。こういったコンピュータを操作している間に値が変化するようなものを扱うプログラムはどのように作ればいいのでしょうか? 今回はこういったプログラムを作成するのに必要な、変数と型について解説します。

変数

 変数とは、値を入れる入れ物のようなものです。入れ物なので、変数の中に入る値は変更することができます。先ほどのショッピングサイトの総額表示の例では、この変数を総額の計算に用いています。別の表現をすれば、変数とは「プログラムを実行している間に値が変わる数」のことともいえるでしょう。

 コンピュータはプログラムを実行している間、この数をメモリに書き込んで保持したり、メモリに保持していた数を読み込んで計算をしたりすることができます。このメモリ領域を確保するためには変数の宣言をします。

 メモリというのは、図1に示すようなマス目のシートだと思えばいいです。各マス目には0か1の値が書き込めます。また、8マスごとにアドレスが割り振られています。例えば図1の1600から1602の各アドレスには2進数で整数値が入っていると見なすと、1600には1(2進数で表すと00000001)、1601には2(2進数で表すと00000010)、1602には3(2進数で表すと00000011)が入っているといえます。コンピュータは、これらのマス目に0や1を書き込むことで値を保持したり、書き込まれている値を読み出して計算へ利用したりするのです。


図1 メモリのイメージ

 変数の宣言をするときには、メモリ領域をどのように使用するかを決めるためのと、そのメモリ領域の読み書きをするときに使う変数名(正確には識別子)とを指定します。型にはプログラマが拡張できない基本型(プリミティブ型)と、プログラマが拡張できる参照型(リファレンス型)がありますが、今回は基本型を理解しましょう。ここでは基本型の中でも、始めにに知っておくべき3つの型だけを紹介します(表1)。

表1 基本型(一部)

型名 メモリ領域をどのような値に使用するか(取り得る値)
boolean 論理値(true か false)
int 整数値(-2147483648〜2147483647)
double

実数値(-1.7976931348623157×(10の308乗)〜1.7976931348623157×(10の308乗))

参考 
正確には、booleanは「論理型」、intは「32ビット符号付き2の補数表現の整数」、doubleは「64ビットIEEE 754-1985浮動小数点数」です。ここでは読者が理解しやすいように大ざっぱに分類しているだけです。例えば、1.0×(10の-400乗)は表1ではdoubleの取り得る値の範囲に含まれますが、実際には使えません。これらの詳細については本連載の範疇を超えますので説明しませんが、興味のある読者の方はコンピュータ科学の教科書などを調べてみてください。

 具体的に変数の宣言をするためにはリスト1のようにします。変数名は「文字で始めて、その後に文字か数字を続けたもの」を指定します。変数の宣言が終わったことを示すために、最後にセミコロン(;)を書きます。

リスト1
int i;

 ここで、プログラムはコンピュータへの命令を記述するものだということを思い出してください。リスト1はコンピュータへ「intの値を読み書きするためのメモリを用意して、iという名前で使えるようにしなさい」と命令しています。Javaではこのような命令を文と呼びます。セミコロン(;)は文の終了を示すものと考えてもよいです。

 宣言した変数を使うためには、まずは値を設定して、その後に参照をします。変数へ値を設定するには代入演算子「=」を使います。変数に設定されている値を参照するには変数名を書けばいいだけです。具体的に、リスト1で宣言した変数iへ1という値を代入して、その変数iの値を出力するにはリスト2のようにします。

リスト2
i= 1;
System.out.println(i);

 数学において「=」は「左辺と右辺とが等しい」という意味を表す等号記号ですが、Javaではこのように右辺の値を左辺の変数へ代入する記号となります。また、前回は「System.out.println(0);」として出力する値をそのまま書いていたところに相当する部分に、今回は変数名を書いていることに注意してください。

 ここで、右辺の値として書いた1について簡単に説明をしておきましょう。基本型には型に応じて代入できる値が決まっています。そういった値をプログラムの中で表現する文字列のことをリテラルといいます。−2147483648〜2147483647の整数を表す数字列はint型変数に代入できるリテラルになり、1はこれに含まれるのでint型変数iへ代入できます。3.1415のように数字とドット(.)からなる実数を表す文字列はdouble型変数へ代入できるリテラルです。boolean型の変数へ代入できるリテラルはtrueかfalseだけです。リスト3へboolean型変数を使う場合の例を示します。

リスト3
boolean b;
b = true;
System.out.println(b);

変数を使ったプログラム

 それでは実際にEclipseで変数を使ったプログラムを作成し、実行してみましょう。C:\eclipseディレクトリにあるeclipseをマウスの左ボタンでダブルクリックしてください。Eclipseが起動し、前回作成したプロジェクトSampleとクラスPrintがそのまま表示されるはずです(画面1)。今回はこのクラスPrintへ命令を追加していきます。



画面1 前回作成したコード

 リスト4の水色の部分を追加してください。EclipseではJavaであらかじめ意味が決められていて予約されている文字列(キーワード)などを分かりやすく表示する機能があります。インストールしたままの設定だと、紫色の太字で表示されているはずです。

リスト4

 キーワードにはいろいろありますが、intやbooleanといった型を意味する文字列はキーワードに含まれます。trueやfalseはキーワードではなくリテラルなのですが、同じように表示されてます。0や1といった数を表すリテラルは普通に表示されています。ちなみに、変数名にはキーワードやリテラルは使えません。この機能のおかげで、キーワードなどのスペルミスや、変数名へ間違えてキーワードを使ってしまっても、すぐに気付くことができます。

 プログラムを入力し終わったら、[ファイル]→[保管]を実行してファイルを保存してから、[実行]→[次を実行]→[Javaアプリケーション]を指定して実行してみましょう。コンソールへ最初にリテラル0の値0、次に変数iの値1、最後に変数bの値trueが出力されれば成功です(画面2)。


画面2 Eclipseのコンソールに結果が出力される

式と演算

 Javaでは計算の基本単位はになります。式の例としては、3+4や2×3といったものがあります。式は「+」や「×」といった演算子(オペレータ)と「3」や「4」といった被演算子(オペランド)から構成されます。被演算子としては、リテラルだけでなく変数も使えます。実は変数だけでも式になります。式は基本的に実行時に評価されて値となります。リスト2でiへ1が代入されていましたが、それを実行するときにはリスト5のように式である変数iの評価がされた結果1となり、それが出力されたのです。

リスト5
System.out.println(i); → System.out.println(1);

 3+4や2×3といった数値計算をするためには算術演算子があります。加減乗除(+、−、*、/)の演算子が使えますが、掛け算が「×」ではなくて「*」だという点には注意しましょう。また、式は評価されるとオペランドの組み合わせに応じて、ある型の値となります。整数と整数で除算をすると整数となりますが、実数と実数で除算をすると実数になります。式の評価結果はどんな型になるかを常に意識する必要があります。

 論理演算子も用意されています。「かつ」という論理積を表す演算子は「&&」となります。xとyの値が両方ともtrueのときだけ「xかつy」の値はtrueとなります。xの値がtrueで、yの値がfalseのときは、「xかつy」の値はfalseとなります。論理積の一覧を表2に示します。

表2 論理積

x
y
x && y 評価結果
true
true
true
true
false
false
false
true
false
false
false
false

 「または」という論理和を表す演算子は「||」となります。xの値かyの値のどちらかがtrueのとき、「xまたはy」の値はtrueとなります。xの値がfalseで、yの値がfalseのときは、「xまたはy」の値はfalseとなります。論理和の一覧を表3に示します。

表3 論理和

x
y
x || y 評価結果
true
true
true
true
false
true
false
true
true
false
false
false

 それでは、式を使ったプログラムを作成してみましょう。これもリスト6のようにPrintクラスへ処理を追加します。水色の部分が追加した分です。加減乗除の四則演算と一通りの論理演算を実行するようにしました。

リスト6

 プログラムを入力し終わったら、[ファイル]→[保管]でファイルを保存してから、[実行]→[次を実行]→[Javaアプリケーション]を指定して実行してみましょう。画面3のように出力されれば成功です。1+2の計算結果「3」などが出力されているはずです。また、12/5の計算結果が「2」となっているのに対し、12.0/5.0の計算結果が「2.4」となっていることが確認できるはずです。論理演算が初めての読者は表2・3リスト6画面3をよく見比べて結果の確認をしてみてください。

画面3

第4回 Javaの条件式を理解する