本講義では、Java言語を用いてプログラミングの基本を学ぶ。 プログラムの制御構造とデータ型を理解することが目標となる。 また、アプレット、参照、オブジェクトなどについても触れる。
http://www.twcu.ac.jp/~konishi/index-j.html
授業内容に応じて参考資料を紹介する。
原則として毎回レポート課題を出す。 最後の授業では筆記試験を行う。 レポートの採点結果と試験の得点を総合して成績を決定する。
レポートはすべて提出すること。
レポート課題に取り組むこと。
コンピュータの台数の関係により、履修希望者が80名を越えた場合は抽選を行います。 抽選用紙には、時間割番号J202Aを記入してください。
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.4.2がインストールされていますので、授業ではそれを用います。
ちなみに、Java 2はバージョン2という意味ではありません。 バージョン1.2.2以降、JavaはJava 2とよばれるようになったのです。
自宅のパソコンにJava 2 SDKをインストールすれば、自宅でこの授業の自習ができます。 CD-ROM付きのJavaの本を買い、その本に従ってインストールするのが簡単です。 本を買いたくなければ、インターネット経由で入手することもできます。 例として、Windows 2000/XPが動いているPCにJava 2 SDK 1.4.2をインストールする方法を説明します。
はじめに、Java 2 SDK 1.4.2のインストール用ファイルを手に入れます。 URL
から「J2SE SDKのダウンロード」を選択し、使用許諾契約に問題がなければAcceptボタンをクリックし、Windows用のファイルを選択してダウンロードしてください。 ファイルの大きさは約49Mバイトです。
ここで、もしAdministratorとしてログオンしていなければ、Administratorとしてログオンし直します。
次に、ダウンロードしたファイルを実行(アイコンをダブルクリック)します。 質問に答えていきますと、ディレクトリC:\j2sdk1.4.2_(番号)が作られ、必要なファイルやディレクトリがその中に展開されます。
最後に、ディレクトリC:\j2sdk1.4.2_(番号)\binにパスを通します。 「コントロールパネル」→「システム」→「詳細」→「環境変数」と選択し、環境変数Pathの値にC:\j2sdk1.4.2_(番号)\binを追加します。 (パスが複数ある場合はセミコロンで区切ります。) これでインストールは完了です。
2003年9月から、情報処理センターのシステムはSolarisからMac OS Xに変更されました。 新システムを利用するには、はじめに初期設定が必要です。 まだ設定していない人は、手元のプリント「クイックガイド」の通りに操作してください。 「クイックガイド」には、Mac OS Xの基本操作の説明もありますので、これも覚えてください。
この授業に関係するアプリケーションは次のようなものです。
アプリケーション | Solaris | Mac OS X |
---|---|---|
端末ソフト | 端末エミュレータ | ターミナル |
テキスト・エディタ | XEmacs | Jedit |
ウェブ・ブラウザ | Netscape | Safari |
メール・ソフト | XEmacs + Mew | Apple Mail |
ここで、入力モードが日本語(メニューバーに「あ」)でしたら、これを英語(星条旗)に切り替えます。
「ターミナル」の起動の仕方は以下の通りです。
「ターミナル」を終了するには次のようにします。
なお、「ターミナル」の字が小さくて読みにくい場合は、次のようにしてください。
Javaでプログラムを作成しますと、たくさんのファイルを扱うことになります。 そこで、授業用のディレクトリcomp2bを作り、そのディレクトリの中で作業を行うことにします。 再び「ターミナル」を起動して、以下のように入力してください。
b04a001@AsiaA1:~% mkdir comp2b b04a001@AsiaA1:~% cd comp2b b04a001@AsiaA1:~/comp2b%
ここで、mkdirはディレクトリを作成するコマンドです(MaKe DIRectory)。 また、cdはカレント・ディレクトリを変更するコマンドです(Change Directory)。
Jeditの起動の仕方は以下の通りです。
Jeditを終了するには次のようにします。
なお、Jeditの字が小さくて読みにくい場合は、次のようにしてください。
今日の授業では、Javaのプログラムが与えられたとき、そのプログラムをどうやって動かすかについて説明します。 今日はプログラムの内容を気にする必要はありません。
Javaプログラムの作成から実行までの手順は以下の通りです。
「コンパイラ」、「インタプリタ」、「バイトコード」などの用語に耳慣れないかもしれません。 ある程度Javaに慣れましたら説明しますので、今は気にしないでください。
+-----+ |class| | pub| filename.java | S| +-----+ | | javac filename.java V +-----+ |?????| |?????| filename.class |?????| +-----+ | | java filename V +-------------+ |+-----------+| ||Good aftern|| || || || || |+-----------+| +-------------+
ここで、再び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 というファイルが生成されます。
b04a001@AsiaA1:~/comp2b% ls GoodAfternoon.java b04a001@AsiaA1:~/comp2b% javac GoodAfternoon.java b04a001@AsiaA1:~/comp2b% ls GoodAfternoon.class GoodAfternoon.java b04a001@AsiaA1:~/comp2b%
ここで、lsはファイルをリスト・アップするコマンドです(LiSt)。
もし「エラー1個」のようなメッセージが表示されましたら、どこかに入力ミスがあります。 ファイル GoodAfternoon.java を見直して、入力ミスを正し、保存して、もう一度 javac コマンドを実行してください。 エラーメッセージの見方は後述します。
javac コマンドは、〜.java ファイルをもとに 〜.class ファイルを生成します。 この 〜.class ファイルの内容が、 バイトコード ( bytecode ) です。 バイトコードは、もとのプログラムとは似ても似つかない、特殊な文字の並びです。
最後に、「ターミナル」で javaコマンド を実行します。 バイトコードが GoodAfternoon.class に格納されていますので、 java GoodAfternoon と入力してください。 (ファイル名から .class を取り除きます。)
b04a001@AsiaA1:~/comp2b% java GoodAfternoon Good afternoon! b04a001@AsiaA1:~/comp2b%
実は、もとのプログラムは、Good afternoon! と出力するものです。 javaコマンドで、確かに実行できたことが分かります。
javacコマンドは、プログラム中におかしな点を見つけますと、〜.class ファイルの生成を止め、エラーメッセージを出力します。
例えば、GoodAfternoon.java で、3行目
System.out.println("Good afternoon!");
を
Systemout.println("Good afternoon!");
と間違ったとします。 javacコマンドを実行しますと、
b04a001@AsiaA1:~/comp2b% javac GoodAfternoon.java GoodAfternoon.java:3: シンボルを解決できません。 シンボル: 変数 Systemout 場所 : GoodAfternoon の クラス Systemout.println("Good afternoon!"); ^ エラー 1 個 b04a001@AsiaA1:~/java%
というメッセージが表示されます。 これは、3行目の Systemout(記号 ^ の指す点)がおかしいという指摘です。
javacコマンドは必ずしも本当の間違いを指摘するとは限りませんが、エラーメッセージを参考にしてプログラムを直してください。 エラーがなくならない限り、〜.class ファイルは生成されませんので、プログラム動かすことができないのです。
履修者の予備知識を確認するため、アンケートを行います。 以下の質問に答え、回答をメールで提出してください。 メールの送信には学内のコンピュータ(メール・サーバ)を用い、送信先はkonishi@twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(4/8)を明記してください。
次の問題が自分でプログラムを作成して解けるかどうかを答えてください。 解ける場合は、どのプログラミング言語かも答えてください。
サイコロを2つ振って出る目の和を考えます。 最も出やすいのは7です。 実際、和が2になるのは1+1の1通り、3になるのは1+2と2+1の2通り、…、7になるのは1+6, 2+5, 3+4, 4+3, 5+2, 6+1の6通り、…、12になるのは6+6の1通り、となり、7になる組合せが最も多いからです。 では、サイコロを3つ振って出る目の和を考えた場合、最も出やすいのは何でしょうか。 コンピュータを使って計算してください。
なお、メールを書くには次のようにします。