Previous | Next | Trail Map | Getting Started | 「 Hello World 」アプリケーション


クラスとオブジェクトの使用

「Hello World」アプリケーションは、何かを行うために作成するJava プログラムとしては、ほぼ最も単純なものである。大変単純なプログラムなので、HelloWorldApp 以外のクラスは定義する必要がない。 しかし、作成されるたいていのプログラムはもっと複雑であり、他のクラスや補助の Java コードを作成する必要がある。

「Hello World」アプリケーションは、Java 環境で提供される別のクラス−System クラス−を使用する。System クラスは、システムに依存する機能性に対し、システムに依存しないアクセスを提供する。System クラスの情報については、システム資源の使用(in the Writing Java Programs trail)を参照すること。

次のリストの太字のコードは、System クラスのクラス変数の使用方法とインスタンスメソッドの使用方法を示す。

/**  HelloWorldApp クラスは標準出力に「Hello World!」
  *  を表示するアプリケーションを実装する。
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); //文字列を表示する。
    }
}

クラスメソッドまたは変数の使用

文の最初のセグメントを見てみよう。

System.out.println("Hello World!");

構成要素 System.out は、System クラス内の out 変数のフルネームになる。アプリケーションは決して System クラスをインスタンス化せず、out はクラス名から直接参照されることに注意する。 これは、out がクラス変数であり、クラスのインスタンスよりも、むしろクラスと関連づけられた変数であるためである。同様にメソッドをクラスと関連づけることができる。これはクラスメソッドである。

クラス変数とメソッドを参照するためには、ピリオド( "." )でクラス名とクラスメソッド名あるいはクラス変数名を結合する。

インスタンスメソッドまたは変数の使用

クラスメソッドあるいはクラス変数でないメソッドと変数は、インスタンスメソッドインスタンス変数として知られている。インスタンスメソッドと変数を参照するためには、オブジェクトからメソッドと変数を参照しなくてはならない。

System の out 変数は、クラス変数である一方、標準出力を実装する PrintStream クラス(Java 開発環境で提供されたクラス)のインスタンスを参照する

System クラスがアプリケーションにロードされると、PrintStream をインスタンス化して、新規の PrintStream オブジェクトを out クラス変数に割り当てる。 これでクラスのインスタンスを持つことになるので、そのインスタンスメソッドを呼び出すことができる。

System.out.println("Hello World!");

見てわかるように、クラスメソッドや変数を参照する方法と同様にして、インスタンスメソッドや変数を参照する。 ピリオド( ".")でオブジェクト参照(out)と、インスタンスメソッド名あるいは変数(println)を結合する。

Java コンパイラにより、クラス、インスタンスメソッド、変数への参照を一緒に階層化することができるので、結果としてプログラム例に現れるような構成要素になる。

System.out.println("Hello World!");

要約

クラスメソッドあるいはクラス変数は特定のクラスと関連づけられる。実行時システムは、インスタンスがクラス内にいくつ存在するかにかかわらず、クラス毎にクラス変数を一回割り当てる。クラス変数とメソッドはクラスを通してアクセスされる。

インスタンスメソッドあるいはインスタンス変数は、特定のオブジェクト(クラスのインスタンス)と関連づけられる。オブジェクトを作成する度に、新規のオブジェクトはそのクラスで定義されたすべてのインスタンス変数のコピーを得る。インスタンス変数とメソッドはオブジェクトを通してアクセスされる。


Previous | Next | Trail Map | Getting Started | 「 Hello World 」アプリケーション