*1
インターネットの掲示版などで「Java言語を学びたいがどうすればよいか?」という質問をして「あなたのスキルや,なぜJava言語を勉強したいのかを書いてくれないと答えられない」と,注意されている人をよく見かけます。これと同じことです。

*2
例えば(a)のJavaコードをTest.javaというファイルに保存して「Javac Test.java」としてコンパイルすれば,「Java Test」で実行できます。

*3
Javaのコードでは,クラスは「class クラス名{〜}」と定義します。一方,インスタンスはクラスから「生成するもの」なので,「型名 インスタンス名 = new クラス名( );」という構文で生成し,「インスタンス名.メソッド名」としてメソッド(インスタンス・メソッド)を利用します。

*4
この典型的な例が,java.langパッケージのMathクラスです。このクラスは,指数関数,対数関数,平方根といった関数をメソッドとして定義していますが,すべてクラス・メソッドとなっています。なぜなら算術関数のようなものは,計算した後は必要ありません。つまり同じメソッドがメモリー上に複数あっても無駄なだけなので,クラス・メソッドとなっているのです。

*5
コンストラクタは,インスタンスを生成するときに自動的に実行される戻り値のないメソッドのようなものです。

*6
Javaの変数は,int型やlong型などの基本データ型と,クラスなどの参照型に分けられます。

*7
継承については「初級編」で解説します。簡単に言うと,あるクラスの性質(変数やメソッド)を受け継ぐことです。

*8
パッケージとは,Javaのプログラム(クラスやインタフェース)を複数集めて名前を付けたグループのことです。

*9
Javaではextendsキーワードを使って継承を記述します。リスト3の例では,SubClassクラスは,MySuperクラスを継承しているので,MySuperクラスで定義している変数aやメソッドsuperTempを,何の宣言もなくすぐに使えます。継承元となるクラスをスーパークラス,継承先のクラスをサブクラスと呼びます。

*10
クラスの中で他のクラス・メソッドを利用したり,インスタンス化してインスタンス・メソッドを呼び出せば,他のクラスを再利用することは何ら難しくはありません。むしろこちらの方が,利用価値が高いかも知れません。なぜなら,条件によって利用するクラスを切り替えることができるからです。継承を使ってしまうと,自動的に生成されるクラスは,そのクラスのスーパークラスに固定されます。

*11
このように,ソースコードに記述されている型から呼び出すメソッドを決めるのではなく,実行時に代入されているインスタンスの参照値から呼び出すメソッドを決めることを「動的なメソッド呼び出し」または「動的なリンク」などと呼びます。

*12
抽象メソッドはメソッドの中身がなく,メソッド名,シグネチャ,戻り値の型のみ定義してあるメソッドです。修飾子abstractで定義します。抽象メソッドを持つクラスは,やはり修飾子abstractを使って,抽象クラスとして宣言します。

*13
MySuperクラスを継承したサブクラスSubC1とSubC2では,prNameメソッドをオーバーライドしないとコンパイル・エラーになってしまいます。

*14
インタフェースをクラスで利用することを「実装する」と呼びます。コードでは,「class クラス名 implements インタフェース名」と書きます。

*15
GoF(ゴフ)とは,デザインパターンのバイブルとなった書籍「オブジェクト指向における再利用のためのデザインパターン 改訂版」(ソフトバンク パブリッシング発行)の4人の著者のことです。中国の文化大革命の四人組をGang of Four(GoF)と呼ぶことから,この4人もそう呼ばれるようになりました。本書では,基本的なデザインパターンとして23個が紹介されています。

*16
コンパイル・エラーになります。


Copyright (C) 2000-2006 Nikkei Business Publications, Inc. All rights reserved.