私のホームページへ - 次の授業へ

情報処理IIIA(Javaプログラミング入門)第1回

目次
  1. 教員の紹介
  2. 授業内容について
  3. Javaプログラミング環境
  4. プログラムの動かし方
  5. アンケート1

教員の紹介

氏名
小西 善二郎(こにし ぜんじろう)
所属
早稲田大学ソフトウェア生産技術研究所 研究員
連絡先
konishi@twcu.ac.jp

授業内容について

授業目的

この授業では、Java言語を用いて、プログラミングの基礎を学ぶことを目的とします。 具体的には、以下の項目がポイントになります。

アルゴリズム
プログラムを作成するためには、アルゴリズムを設計する必要があります。 アルゴリズムは、基本的に、順次、選択、繰り返しの3つの要素から構成されることを学び、これらの機能を用いる演習を行います。
データ構造
プログラムを作成するには、データ構造の設計も重要です。 Javaにおけるデータ型には、数などの基本型のほかに、参照型というものがあることを学び、参照型の例として配列を扱う演習を行います。
オブジェクト指向
Javaは、オブジェクト指向という考え方に基づいたプログラミング言語です。 この考え方の要素である、クラス、メソッド、継承といった概念について学びます。
アプレット
Javaの特徴の一つに、アプレットとよばれる機能によって、WWWブラウザ上でプログラムが実行できることがあげられます。 これに関して、JavaバイトコードやJava仮想機械といった概念について学びます。

授業スケジュール

1. プログラムの動かし方

この授業では、与えられたプログラムを入力し、保存し、コンパイルし、実行するまでの手順を知る演習を行います。

また、プログラミング言語としてのJavaの特徴に触れ、JavaバイトコードやJava仮想機械といった概念を学びます。

2. アプレット

Javaの特徴の一つに、アプレットとよばれる機能によって、WWWブラウザ上でプログラムが実行できることがあげられます。

この授業では、アプレットを動かすためのHTMLファイルの書き方を学び、アプレットを用いて、簡単な絵を描く演習を行います。

3. 変数と代入文

Javaは色々な型のデータを取り扱うことができます。 この授業では、基本データ型の例として数を取り上げます。

変数、演算子、式、代入文、文といった概念を学び、これらを用いたプログラムの作成演習を行います。

4. クラスとメソッド(1)

この授業では、クラスやメソッドなどの概念を導入します。

Javaのプログラムはクラスの集まりであることや、クラスの定義は変数の宣言、コンストラクタの定義、メソッドの定義からなること、メソッドの定義は変数の宣言と文からなることを学びます。

また、これらの概念に基づいて、オブジェクトを取り扱うプログラムの作成演習を行います。

5. 選択

Javaは手続き型プログラミング言語に分類されます。 手続き型言語に基づくプログラムは、一般的に、順次、選択、繰り返しの3種類の構成要素を持ちます。 順次については前回の授業で学んだので、この授業では選択を取り上げます。

Javaでは選択をif文やswitch文で実現することを学び、ブール式の書き方に触れた後、選択を用いたプログラムの作成演習を行います。

6. 繰り返し

この授業では、プログラムの第3要素である繰り返しを取り上げます。

Javaでは繰り返しをfor文、while文、およびdo-while文で実現することを学び、無限ループという概念に触れた後、繰り返しを用いたプログラムの作成演習を行います。

7. 配列(1)

Javaのデータ型は、基本型と参照型に分類されます。 この授業では、参照データ型の例として配列を取り上げます。 配列の考え方を学び、配列を用いて、データの集計をしたり、整列や検索を行ったりするプログラムの作成演習を行います。

8. 配列(2)

この授業では、引き続き配列を取り上げます。 配列の配列という考え方を学び、特に2次元配列を用いて、表の集計をしたり、パターンを描いたりするプログラムの作成演習を行います。

9. 再帰

自分自身を呼び出すプログラミング手法は再帰とよばれます。 この授業では、再帰の考え方を学び、再帰を用いて、データの整列をしたり、フラクタル図形を描いたりするプログラムの作成演習を行います。

10. クラスとメソッド(2)

この授業では、これまで必要に応じて触れてきた、インスタンス変数とクラス変数、インスタンス・メソッドとクラス・メソッド、コンストラクタといった概念について整理します。

また、インスタンスが参照型であることや、メソッドのオーバーロードなどの概念を学びます。

11. 文字列と入出力

この授業では、文字列の取り扱い方について学びます。 また、ファイルの取り扱い方や入出力の仕方についても学びます。

これらを利用して、ファイルの内容を処理するプログラムの作成演習を行います。

12. より高度な話題

Javaは、オブジェクト指向のプログラミング言語です。 この授業では、オブジェクト指向の概念のひとつである、継承について学びます。

また、Javaは高い信頼性と安全性を備えた言語です。 この特徴を支えている、ガベージ・コレクションやアプレット・セキュリティといった機能についても学びます。

教科書

ホームページhttp://www.twcu.ac.jp/~konishi/index-j.htmlの内容に沿って授業を進めます。 必要に応じて、権藤克彦著『Javaによるプログラミング入門』(サイエンス社)を利用します。

成績評価

レポート提出によって成績を評価します。 試験は行いません。

原則として毎回、授業の最後に課題を出しますので、次の授業の開始時刻までにレポートをメールで提出してください。 これより遅れても、提出すれば採点します。


Javaプログラミング環境

情報処理センターのJava環境

一般的に、プログラムを作成するには、プログラム開発用ソフトウェア(言語処理系、開発環境などとよばれる)を用意する必要があります。 プログラマは、開発用ソフトウェアに備わっている機能を利用して、プログラムを実行できるものにしたり(コンパイル)、プログラムの間違いを見つけたり(デバッグ)します。 Javaの開発用ソフトウェアにはいくつか種類がありますが、この授業では、サン・マイクロシステムズ社のJDK(Java Development Kit)を用います。 プログラミングの学習が目的でしたら、JDKの提供する機能で十分でしょう。

JDKにはいくつかのバージョンがあります。 東京女子大学情報処理センターのシステムには、そのうちのいくつかがインストールされています。 デフォルトではJDK 1.0.2が使えますので、この授業ではJDK 1.0.2を用いることにします。

ちなみに、Javaはバージョン1.2以降、Java 2とよばれるようになりました。 JDKも、Java 2 SDK(Software Development Kit)という名前になっています。 現在では、バージョン1.3が公開され始めています。

自宅で自習するには

自宅のパソコンにJDKをインストールすれば、自宅でこの授業の自習ができます。 ここでは、例としてWindows 95が動いているPCにJDK 1.0.2をインストールする方法を説明します。

はじめに、JDK 1.0.2のアーカイブ・ファイルを手に入れます。 URL

http://java.sun.com/products/jdk/1.0.2/

からダウンロードしてください。 ファイルの大きさは4Mバイト弱です。 ダウンロードが面倒でしたら、CD-ROM付きのJavaの本を買うのもよいでしょう。

次に、ダウンロードしたファイルをルートディレクトリ(C:\)に置き、そのファイル(自己解凍形式)を実行します。 すると、ディレクトリ C:\java が作られ、必要なファイルやディレクトリがその中に展開されます。

最後に、ディレクトリ \java\bin にパスを通します。 ファイル autoexec.bat を編集し、PATH 変数の設定に \java\bin を追加します。 再起動しますとインストールは完了です。


プログラムの動かし方

全体の手順

今日の授業では、Javaのプログラムが与えられたとき、そのプログラムをどうやって動かすかを演習を通じて説明します。 今日はプログラムの内容を気にする必要はありません。

なお、Javaでプログラムを作成しますと、たくさんのファイルを扱うことになります。 あらかじめこの授業用のディレクトリ(例えばjava)を作っておき、そのディレクトリの中で作業することを勧めます。

b00a001@Ampere:~% mkdir java
b00a001@Ampere:~% cd java
b00a001@Ampere:~/java%

Javaプログラムの作成から実行までの手順は以下の通りです。

  1. エディタ(xemacsなど)を用いてプログラムを入力する。
  2. 入力したプログラムをファイルに保存する。
  3. Javaコンパイラ(javac)を用いてプログラムからバイトコードを生成する。
  4. Javaインタプリタ(java)を用いてバイトコードを実行する。

「コンパイラ」、「インタプリタ」、「バイトコード」などの用語に耳慣れないかもしれません。 ある程度Javaに慣れたら説明しますので、今は気にしないでください。

プログラムの入力と保存

はじめに、エディタ(xemacs)を起動してください。 次のプログラムをそっくりそのまま入力し、ファイル名 GoodMorning.java で保存してください。 なお、アルファベットの大文字を小文字にしたりしないでください。

 1: class GoodMorning {
 2:    public static void main (String[] args) {
 3:       System.out.println("Good Morning!");
 4:    }
 5: }

Javaのプログラムを保存するときは、ファイル名の拡張子を .java にする必要があります。

コンパイル

次に、端末エミュレータでjavacコマンドを実行します。 プログラムが GoodMorning.java に保存されていますので、javac GoodMorning.java と入力してください。 プログラムが正確に入力できていれば、GoodMorning.class というファイルが生成されます。

b00a001@Ampere:~/java% ls
GoodMorning.java
b00a001@Ampere:~/java% javac GoodMorning.java
b00a001@Ampere:~/java% ls
GoodMorning.class   GoodMorning.java
b00a001@Ampere:~/java%

もし、1 error のようなメッセージが表示されましたら、どこかに入力ミスがあります。 ファイル GoodMorning.java を見直して、入力ミスを正し、保存して、もう一度 javac コマンドを実行してください。 エラーメッセージの見方は後述します。

javacコマンドは、.java のファイルをもとに .class のファイルを生成します。 この .class のファイルの内容が、バイトコードです。 バイトコードは、もとのプログラムとは似ても似つかない、特殊な文字の並びです。

実行

最後に、端末エミュレータでjavaコマンドを実行します。 バイトコードが GoodMorning.class に格納されていますので、java GoodMorning と入力してください。 (ファイル名から .class を取り除きます。)

b00a001@Ampere:~/java% java GoodMorning
Good Morning!
b00a001@Ampere:~/java%

実は、もとのプログラムは、Good Morning!と出力するものです。 javaコマンドで、確かに実行できたことが分かります。

プログラムのエラー

javacコマンドは、プログラム中におかしな点を見つけると、.class のファイルの生成を止め、エラーメッセージを出力します。

例えば、GoodMorning.java で、3行目

      System.out.println("Good Morning!");

      Systemout.println("Good Morning!");

と間違ったとします。 javacコマンドを実行しますと、

b00a001@Ampere:~/java% javac GoodMorning.java
GoodMorning.java:3: Undefined variable: Systemout
      Systemout.println("Good Morning!");
      ^
1 error
b00a001@Ampere:~/java%

というメッセージが表示されます。 これは、3行目の Systemout(記号 ^ の指す点)がおかしいという指摘です。

javacコマンドは必ずしも本当の間違いを指摘するとは限りませんが、エラーメッセージを参考にしてプログラムを直してください。 エラーがなくならない限り、.class のファイルは生成されませんので、プログラム動かすことができないのです。


アンケート1

履修者の予備知識を確認するため、アンケートを行います。 学生番号、氏名、科目名、授業の日付を明記して、konishi@twcu.ac.jpあてにメールで回答してください。 アンケートに回答すると、出席したものと見なします。

  1. 何らかのプログラミング言語を使って、自分でプログラムを作成したことはありますか。 もしあれば、どのプログラミング言語が使えますか。 ここでは、1 + 2 + … + 100 を計算するといったプログラムが組めれば、その言語が使えるものとします。
  2. 授業内容に関して、何か希望がありましたら答えてください。

私のホームページへ - 次の授業へ

このページの複製は、東京女子大学学内に限り許可します。 このページへのリンクを許可します。
2000年10月16日更新
製作・著作:小西善二郎<konishi@twcu.ac.jp>