本講義では、Java言語を用いてプログラミングの基本を学ぶ。 プログラムの制御構造とデータ型を理解することが目標となる。 また、アプレットなどについても触れる。
http://www.cis.twcu.ac.jp/~konishi/index-j.html
注意:シラバス記載のURL http://www.twcu.ac.jp/~konishi/index-j.html は、将来廃止されます。
授業内容に応じて参考資料を紹介する。
原則として毎回レポート課題を出す。 最後の授業では筆記試験を行う。 レポートの採点結果と試験の得点を総合して成績を決定する。
レポートはすべて提出すること。
レポート課題に取り組むこと。
コンピュータの台数の関係により、履修希望者が40名を越えた場合は抽選を行います。 抽選用紙には、時間割番号J202Bを記入してください。
Javaとは、1995年にSun Microsystems社から発表されたプログラミング言語です。 Javaは、ネットワークやGUI(Graphical User Interface)など、現代的な機能が充実しています。 特に、アプレットとよばれる、ホームページにプログラムを埋め込む技術は、Javaが一気に有名になった切っ掛けでもあります。 また、Javaは基本的にマルチプラットホームであり、一度プログラムを書けば、それはWindowsでもMac OS XでもLinuxでもSolarisでも動きます。 Javaの言語体系は比較的整理されていますので、プログラミングの入門にも適しています。
一般的に、プログラムを作成するには、プログラム開発用ソフトウェア(言語処理系、開発環境などとよばれる)を用意する必要があります。 プログラマは、開発用ソフトウェアに備わっている機能を利用して、プログラムを実行できるものにしたり( コンパイル 、 compile )、プログラムの間違いを見つけたり( デバッグ 、 debug )します。
Javaの開発用ソフトウェアには、いくつか種類があります。 この授業では、Mac OS X標準の、Java 2 SDK (Software Development Kit)を用います。 プログラミングの学習が目的でしたら、SDKの提供する機能で十分でしょう。 Java 2 SDKには、いくつかのバージョンがあります。 情報処理センターのシステムには、バージョン1.5.0がインストールされていますので、授業ではそれを用います。
ちなみに、Java 2はバージョン2という意味ではありません。 バージョン1.2.2以降、JavaはJava 2とよばれるようになったのです。
自宅のパソコンにJava 2 SDKをインストールすれば、自宅でこの授業の自習ができます。 CD-ROM付きのJavaの本を買い、その本に従ってインストールするのが簡単です。 本を買いたくなければ、インターネット経由で入手することもできます。 例として、Windows 2000/XP/Vistaが動いているPCに、Java 2 SDK 1.5.0をインストールする方法を説明します。
はじめに、Java 2 SDK 1.5.0のインストール用ファイルを手に入れます。 URL
から「JDK 5ダウンロード」の「JDK 5.0 Update (番号)」を選択し、使用許諾契約に問題がなければAcceptボタンをクリックし、Windows用のファイルを選択してダウンロードしてください。 ファイルの大きさは約51Mバイトです。
ここで、もしAdministratorとしてログオンしていなければ、Administratorとしてログオンし直します。
次に、ダウンロードしたファイルを実行(アイコンをダブルクリック)します。 質問に答えていきますと、フォルダC:\Program Files\Java\jdk1.5.0_(番号)が作られ、必要なファイルやフォルダがその中に展開されます。
最後に、フォルダC:\Program Files\Java\jdk1.5.0_(番号)\binにパスを通します。 「コントロールパネル」→「システム」→「詳細」→「環境変数」と選択し、環境変数Pathの値にC:\Program Files\Java\jdk1.5.0_(番号)\binを追加します。 (パスが複数ある場合はセミコロンで区切ります。) これでインストールは完了です。
2007年9月に、情報処理センターのシステムが更新されました。 Mac OS Xであることは変わりませんが、一部のアプリケーションがバージョン・アップしています。
この授業に関係するアプリケーションは次のようなものです。
アプリケーション | 更新前 | 更新後 |
---|---|---|
ターミナル・ソフト | ターミナル | ターミナル |
テキスト・エディタ | Jedit 4 | Jedit X |
ウェブ・ブラウザ | Safari | Safari |
メール・ソフト | Apple Mail | Safari+GMail |
「ターミナル」とSafariは、Mac OS Xに付属しているソフトウェアです。 Jeditは、Artman 21が開発したソフトウェアです。 GMailは、Googleが提供しているメール・サービスです。
Jeditの起動の仕方は以下の通りです。
Jeditを終了するには次のようにします。
なお、Jeditの字が小さくて読みにくい場合は、次のようにしてください。
「ターミナル」の起動の仕方は以下の通りです。 もし、入力モードが日本語(メニューバーに「あ」)でしたら、これを英字(「A」)に切り替えておきます。
「ターミナル」を終了するには次のようにします。
なお、「ターミナル」の字が小さくて読みにくい場合は、次のようにしてください。
Javaでプログラムを作成しますと、たくさんのファイルを扱うことになります。 そこで、授業用のフォルダcomp2bを作り、そのフォルダの中で作業を行うことにします。 再び「ターミナル」を起動して、以下のように入力してください。
asiaa1:~ b08a001$ mkdir comp2b asiaa1:~ b08a001$ cd comp2b asiaa1:~/comp2b b08a001$
ここで、mkdirはディレクトリを作成するコマンドです(MaKe DIRectory)。 また、cdはカレント・ディレクトリを変更するコマンドです(Change Directory)。 なお、ディレクトリとフォルダは同じ意味です。
今日の授業では、Javaのプログラムが与えられたとき、そのプログラムをどうやって動かすかについて説明します。 今日はプログラムの内容を気にする必要はありません。
Javaプログラムの作成から実行までの手順は以下の通りです。
「コンパイラ」、「インタプリタ」、「バイトコード」などの用語に耳慣れないかもしれません。 ある程度Javaに慣れましたら説明しますので、今は気にしないでください。
ここで、再びJeditを起動します。 そして、次のプログラムをそっくりそのまま入力します。 アルファベットの大文字を小文字に変えたりしないでください。 /*...*/は入力する必要はありません。
/* 1*/ class GoodAfternoon { /* 2*/ public static void main (String[] args) { /* 3*/ System.out.println("Good afternoon!"); /* 4*/ } /* 5*/ }
次に、このプログラムをファイルに保存します。 Javaのプログラムを保存するときには、ファイル名の拡張子を 〜.java にする必要があります。 今日は、ファイル名を GoodAfternoon.java とします。
新規に作成したプログラムをファイルに保存するには次のようにします。
練習のため、タイトルバーの赤ボタンをクリックしてウィンドウを閉じます。 そして、再びこのファイルを開くことにします。
以前作成したファイルを開くには次のようにします。
なお、更新したプログラムをファイルに保存するには次のようにします。
プログラムをファイルに保存しましたら、次に「ターミナル」で javacコマンド を実行します。 プログラムは GoodAfternoon.java に保存されていますので、 javac GoodAfternoon.java と入力してください。 プログラムが正確に入力できていれば、GoodAfternoon.class というファイルが生成されます。
asiaa1:~/comp2b b08a001$ ls GoodAfternoon.java asiaa1:~/comp2b b08a001$ javac GoodAfternoon.java asiaa1:~/comp2b b08a001$ ls GoodAfternoon.class GoodAfternoon.java asiaa1:~/comp2b b08a001$
ここで、lsはファイルをリスト・アップするコマンドです(LiSt)。
もし「エラー1個」のようなメッセージが表示されましたら、どこかに入力ミスがあります。 ファイル GoodAfternoon.java を見直して、入力ミスを正し、保存して、もう一度 javac コマンドを実行してください。 エラーメッセージの見方は後述します。
javac コマンドは、〜.java ファイルをもとに 〜.class ファイルを生成します。 この 〜.class ファイルの内容が、 バイトコード ( bytecode ) です。 バイトコードは、もとのプログラムとは似ても似つかない、特殊な文字の並びです。
最後に、「ターミナル」で javaコマンド を実行します。 バイトコードが GoodAfternoon.class に格納されていますので、 java GoodAfternoon と入力してください。 (ファイル名から .class を取り除きます。)
asiaa1:~/comp2b b08a001$ java GoodAfternoon Good afternoon! asiaa1:~/comp2b b08a001$
実は、もとのプログラムは、Good afternoon! と出力するものです。 javaコマンドで、確かに実行できたことが分かります。
javacコマンドは、プログラム中におかしな点を見つけますと、バイトコード・ファイルの生成を止め、エラーメッセージを出力します。
例えば、GoodAfternoon.java で、3行目
System.out.println("Good afternoon!");
を
Systemout.println("Good afternoon!");
と間違ったとします。 javacコマンドを実行しますと、
asiaa1:~/comp2b b08a001$ javac GoodAfternoon.java GoodAfternoon.java:3: シンボルを見つけられません。 シンボル: 変数 Systemout 場所 : GoodAfternoon の クラス Systemout.println("Good afternoon!"); ^ エラー 1 個 asiaa1:~/comp2b b08a001$
というメッセージが表示されます。 これは、3行目の Systemout(記号 ^ の指す点)がおかしいという指摘です。
javacコマンドは必ずしも本当の間違いを指摘するとは限りませんが、エラーメッセージを参考にしてプログラムを直してください。 エラーがなくならない限り、バイトコード・ファイルは生成されませんので、プログラム動かすことができないのです。
履修者の予備知識を確認するため、アンケートを行います。 以下の質問に答え、回答をメールで提出してください。 差出人は学内のメール・アドレス(b08a001@cis.twcu.ac.jpなど)とし、宛先はkonishi@cis.twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(4月11日)を明記してください。
次の問題が自分でプログラムを作成して解けるかどうかを答えてください。 解ける場合は、どのプログラミング言語かも答えてください。
問題: 1 * 2 * ... * n を、 n の階乗(factorial)と呼び、 n ! と書きます。 1! から 10! までを計算して出力してください。
asiaa1:~/comp2b b08a001$ java FactorialList 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 362880 10! = 3628800 asiaa1:/~comp2b b08a001$