Javaで書くものはすべてクラス(=仕様書)で,実物であるインスタンス(=現物)ではありません. 一方,実際にプログラムとして動くのはインスタンスです.仕様書だけでは物はうごきません. インスタンスはクラス名(たとえば Example)を使って
Example a = new Example();
という文を(どこかのインスタンスの中で)実行すると作られます.同じクラス名を使った new 文はいくつでも書けます.これで部品を沢山作ることができるわけです.
Example a1 = new Example(); Example a2 = new Example(); Example a3 = new Example();
というぐあいです.
ところで new 自体はどこかのインスタンスで実行される必要がありますが,そのインスタンス自体もどこかで作られなければなりません.Java のプログラムはクラス定義のみですから,これではいくらたってもらちがあきません.動かすための最初の卵はどこに誰がうむのでしょうか.
Javaでは「最初の卵」を仕様書(クラス)の中に用意します.
クラスは「仕様書」だと言いましたが,その仕様書から作られるすべての製品(インスタンス)に共通なデータやメソッドは,仕様書自体に用意することができます.たとえば,「作られた製品の現在数」とか「仕様書の作成日付」といったデータは,個々の製品のデータというよりは全体に共通のデータですから,仕様書(クラス)が保持するのが自然です.そして,仕様書が保持するデータやメソッドは,実際の製品を作らなくても使用できる現物として,言い換えれば,仕様書を定義した段階で存在するインスタンス(のようなもの)として利用できます.これが「卵」となります.
クラス共通のデータやメソッドは,クラス定義の中で「性質」として
static
を指定します.おなじみの main の前にもついていましたね.そうです,main メソッドは「とにかくプログラムを動かし始める」ための卵だったわけです.「最初に main メソッドを動かす」のは Java での約束ごとになっています.
26.1.7.4 仕様書 | 26.1.7.5 最初の卵 | 26.1.7.6 ものの見え方 | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Tue, 08 Jun 2004 13:40:23 JST (1879d) |