本講義では、Java言語を用いてプログラミングの基礎を学ぶ。 プログラムの制御構造とデータ型について理解する。 また、クラスとメソッドの機能、アプレットを用いたホームページ、Javaのセキュリティについても触れる。
http://www.twcu.ac.jp/~konishi/index-j.html
授業内容に応じて参考資料を紹介する。
原則として毎回レポート課題を出す。 最後の授業では筆記試験を行う。 レポートの採点結果と試験の得点を総合して成績を決定する。
レポートはすべて提出すること。
レポート課題に取り組むこと。
コンピュータの台数の関係により、履修希望者が80名を越えた場合は抽選を行います。 抽選用紙には、時間割番号J202Aを記入してください。
Javaとは、1995年にSun Microsystems社から発表されたプログラミング言語です。 Javaは、ネットワークやGUI(Graphical User Interface)など、現代的な機能が充実しています。 特に、アプレットとよばれる、ホームページにプログラムを埋め込む技術は、Javaが一気に有名になった切っ掛けでもあります。 また、Javaは基本的にマルチプラットホームであり、一度プログラムを書けば、それはWindowsでもMacOS XでもLinuxでもSolarisでも動きます。 Javaの言語体系は比較的整理されていますので、プログラミングの入門にも適しています。
一般的に、プログラムを作成するには、プログラム開発用ソフトウェア(言語処理系、開発環境などとよばれる)を用意する必要があります。 プログラマは、開発用ソフトウェアに備わっている機能を利用して、プログラムを実行できるものにしたり( コンパイル 、 compile )、プログラムの間違いを見つけたり( デバッグ 、 debug )します。 Javaの開発用ソフトウェアにはいくつか種類があります。 この授業では、MacOS 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
http://java.sun.com/j2se/1.4.2/ja/download.html
から「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からMacOS Xに変更されました。 新システムを利用するには、はじめに初期設定が必要です。 まだ設定していない人は、手元のプリント「クイックガイド」の通りに操作してください。 「クイックガイド」には、MacOS Xの基本操作の説明もありますので、これも覚えてください。
この授業に関係するアプリケーションは次のようなものです。
アプリケーション | Solaris | MacOS X |
---|---|---|
端末ソフト | 端末エミュレータ | ターミナル |
テキスト・エディタ | XEmacs | Jedit |
ウェブ・ブラウザ | Netscape | Safari |
メール・ソフト | Mew |
ここで、入力モードが日本語(メニュー・バーに「あ」)でしたら、これを英語(星条旗)に切り替えます。
「ターミナル」の使い方は以下の通りです。
「ターミナル」を終了するには次のようにします。
なお、「ターミナル」の字が小さくて読みにくい場合は、次のようにしてください。
Javaでプログラムを作成しますと、たくさんのファイルを扱うことになります。 そこで、授業用のディレクトリ(例えばjava)を作り、そのディレクトリの中で作業を行うことにします。 再び「ターミナル」を起動して、以下のように入力してください。
b00a001@AsiaA1:~% mkdir java b00a001@AsiaA1:~% cd java b00a001@AsiaA1:~/java%
Jeditの使い方は以下の通りです。
Jeditを終了するには次のようにします。
なお、Jeditの字が小さくて読みにくい場合は、次のようにしてください。
今日の授業では、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 というファイルが生成されます。
b00a001@AsiaA1:~/java% ls GoodAfternoon.java b00a001@AsiaA1:~/java% javac GoodAfternoon.java b00a001@AsiaA1:~/java% ls GoodAfternoon.class GoodAfternoon.java b00a001@AsiaA1:~/java%
もし「エラー1個」のようなメッセージが表示されましたら、どこかに入力ミスがあります。 ファイル GoodAfternoon.java を見直して、入力ミスを正し、保存して、もう一度 javac コマンドを実行してください。 エラーメッセージの見方は後述します。
javac コマンドは、〜.java ファイルをもとに 〜.class ファイルを生成します。 この 〜.class ファイルの内容が、 バイトコード ( bytecode ) です。 バイトコードは、もとのプログラムとは似ても似つかない、特殊な文字の並びです。
最後に、「ターミナル」で javaコマンド を実行します。 バイトコードが GoodAfternoon.class に格納されていますので、 java GoodAfternoon と入力してください。 (ファイル名から .class を取り除きます。)
b00a001@AsiaA1:~/java% java GoodAfternoon Good afternoon! b00a001@AsiaA1:~/java%
実は、もとのプログラムは、Good afternoon! と出力するものです。 javaコマンドで、確かに実行できたことが分かります。
javacコマンドは、プログラム中におかしな点を見つけますと、〜.class ファイルの生成を止め、エラーメッセージを出力します。
例えば、GoodAfternoon.java で、3行目
System.out.println("Good afternoon!");
を
Systemout.println("Good afternoon!");
と間違ったとします。 javacコマンドを実行しますと、
b00a001@AsiaA1:~/java% javac GoodAfternoon.java GoodAfternoon.java:3: シンボルを解決できません。 シンボル: 変数 Systemout 場所 : GoodAfternoon の クラス Systemout.println("Good afternoon!"); ^ エラー 1 個 b00a001@AsiaA1:~/java%
というメッセージが表示されます。 これは、3行目の Systemout(記号 ^ の指す点)がおかしいという指摘です。
javacコマンドは必ずしも本当の間違いを指摘するとは限りませんが、エラーメッセージを参考にしてプログラムを直してください。 エラーがなくならない限り、〜.class ファイルは生成されませんので、プログラム動かすことができないのです。
履修者の予備知識を確認するため、アンケートを行います。 以下の質問に答え、回答をkonishi@twcu.ac.jpあてにメールで送ってください。 メールには、学生番号、氏名、科目名、授業日(4/9)を明記してください。
ある生物は単性生殖で、生まれてから 24 時間後に子を一つ生み、48 時間後にも子を一つ生んで、自分自身はその直後に死ぬとします。 1 日目に生まれたばかりのこの生物一つから始めますと、2 日目には一つ生まれますので、日齢 0 が 1 個、日齢 1 が 1 個の合計 2 個になります。 3 日目には二つ生まれますが、日齢 2 のものが死にますので、日齢 0 が 2 個、日齢 1 が 1 個の合計 3 個になります。 さて、個数が一万を越えるのは何日目ごろでしょうか。 コンピュータを使って計算してください。
なお、メールを書くには次のようにします。