このサイトは「Javaによるプログラミング入門 第2版」 を購入頂いた方のためのサポート情報をまとめています。

旧版である「Javaによるプログラミング入門」については プログラム集のみ提供しています。 よろしくお願い致します。

はじめに

本書「Javaによるプログラミング入門 第2版」は、 Java言語の入門書ではありません。 題名をよく見てください。 「(Javaによる)プログラミング入門」、 つまりプログラミングをはじめて学ぶのだけれど、 その題材としてJava言語を使用している。という意味の題名に見えるでしょう?

我々の社会の将来のために、 「情報社会に生きる個人の力」を育むことは最重要目標の1つです。 そして、プログラミングを学び、その楽しさを知ることは、 この目標への最短経路だと考えます。 そこさえ押えておけば、各種の情報技術が詰まるところ何なのか、 なぜ必要なのか、といった理解は後からでもついて来るはずです。

本書ではこの目標のために、Javaでさまざまな種類のプログラムを作って見せます。 Java言語のあらゆる機能を網羅するつもりはありません (それをやるとぎゅうぎゅうに内容の詰まった重たい本になってしまいますから)。 その代り、1章ずつ確実にこなして行くことで、 各章で出て来る例題レベルのプログラムが自由に書けるようになることを目指しました。 それはつまり、 現代におけるプログラミングがどんなものなのかを知ることでもありますし、 現代における標準レベルのプログラムが作れるようになることでもあります。

この目標を確実に達成するために、要所ごとに演習問題を入れました。 先を急がずに、できるだけ沢山の演習問題を自分でこなしてください。 本書の文面を最後まで通読しただけでプログラミングができるようになるわけではありません。 そうではなく、自力でプログラムを10行書いて動かせば10行ぶん、 100行書いて動かせば100行ぶんの実力がつきます。 プログラミングをマスターする、というのはそういうことです。 このことは心しておいてください。

また、上で言語の機能を網羅しないと書きましたが、 言語の機能の系統的な説明がないと納得が行かないことも色々あります。 そこで、各章末に「付録」を配してJava言語の種々の側面を取り上げて説明する、 というスタイルを取りました。 この部分はとりあえずはざっと眺めておき、 その側面についてきちんと学ぶ必要を感じたら改めて熟読して頂ければと思います。

本書は大学などの授業で使用する場合、 初心者むけの最初のプログラミングの教科書としても、 入門が終わった後のもう少し進んだ内容 (とりわけ「オブジェクト指向」) を学ぶための教科書としても使えるように考えました。

前者(初級)の場合は、1章をひととおり座学で学んだ後、 2章、3章、4章をゆっくり扱うのがよいでしょう。 各章ともおおむね前半と後半に分かれているので、 1回について1章の半分ずつ進むことができます (さらに、内容を学ぶ回と演習の回を分けてもよいでしょう)。 その後は時間の余裕に応じて、 5〜10章のそれぞれ前半を選択的に取り上げることができます。 5章以降の各章間の依存関係は、 5→6→9、5→7→10、5→8となっているので、 この順番にだけ注意すれば、あとは興味のある題材から選んでいくのがよいでしょう。

後者(中級)の場合は、1章を学んだ後、 2章はJava言語とグラフィクスに慣れるための章、 3章は制御構造を復習するための章として、 簡単に済ませることが考えられます (もちろん、これらの内容に自信がない場合は、 ゆっくり時間を掛けて扱うのがよいでしょう)。 そして、4〜5章が、 オブジェクト指向を学ぶためにじっくり取り組むべき部分になります。 ここでさらに2つのアプローチがあります。

1つは、例題で出て来る各種の材料のクラスは読んで理解するとしても、 それらと同様のものを自作するところまでは求めないで、 それらを組み合わせて自分が思ったような絵や動きが作れることに重点を置くものです。 今日のオブジェクト指向ではそのようなレベルで作業する場合も多くありますし、 その時に本書では材料のクラスを読んで中身を理解しているため、 それらをスムーズに活用できます。

もう1つは、材料のクラスを理解したら、 それと同レベルのものを自分でも作って見るように目指すものです。 このとき、自作のクラスが既にあるクラス群とうまく組み合わさって動くようすを見ると、 オブジェクト指向の威力が納得できるはずです。

どちらのアプローチにするかは、 各章の演習問題群のどの演習問題を実際にやるかで選ぶことができます。 自分でやってみない演習問題でも、例解を読んで理解してから、 そこにあるクラスを使ってみるという形で活用してください。 無理にクラス作成にチャレンジしなくても、 例題や例解にあるクラスを組み合わせて使うだけで、 それなりに面白いことができるように工夫したつもりです。 5章については、後半の例題はそれなりに複雑なので、 必要に応じて扱うのがよいでしょう。

どちらのアプローチでも、 4章と5章の前半(抽象クラスの手前まで)が済んでいれば、 6〜10章に進むことができます。 依存関係については上で説明した通りで、 各章とも前半と後半で分かれている点はこれまでと同じです。

この本の第1版が出てから、 Java言語もそこに備わる標準ライブラリもだいぶ変化しました。 また著者の方でも、上で述べた目標 (現代における標準レベルのプログラミングを学ぶこと) にどうアプローチしたらハッピーなのか、 新しく分かって来たことが色々ありました。 ですからこの第2版では、目標は第1版と同じですが、 アプローチは色々変えてあります。ぜひ、お楽しみください。


コードや図などの素材について

2010.12 著者 記
2015.5 (2刷のため改訂)