クラスとインスタンス
ここまで、整数とテキストを使った簡単なサンプルをあげてきましたが、このうちテキストは、基本型にはありません。これは、実は「オブジェクト」です。――前回、Javaというのは「クラス」という形でプログラムを作成する、ということを説明しました。このクラスは、いわば「設計図」に相当するものです。これをそのまま利用することもありますが、通常はこれを元に「オブジェクト」を作成し、利用します。
実際に、オブジェクトというのを使ってみましょう。簡単な例として、テキストをオブジェクトとして作成してみます。テキストというのは、大体次のような感じで変数に設定をしましたね。
String str = "Hello";
これを、Stringクラスのオブジェクトを作成する形で記述すると、次のようになります。
String str = new String("Hello");
オブジェクトは、「newクラス名」という形で作成をします。この「new」は、クラスを元にしてオブジェクトを生成します。このとき、必要な値などがあればその後の( )に引数として値を指定しておきます。Stringは、作成するテキストの値を引数に指定しますので、new String("Hello")で"Hello"というテキストのStringオブジェクトが作成されるわけです。
Javaの世界では、「クラスを元に作成されたオブジェクト」のことを「インスタンス」と言います。インスタンスは、クラスのコピーのようなものです。クラスに定義されているメソッドやフィールドはそのままインスタンスの中にも置かれ、利用することができます。今まで、漠然と「オブジェクト」という言葉を使ってきましたが、これからはJavaの世界の決まりに従い、「クラスから作成されたもの」は「インスタンス」と呼ぶようにしましょう。
では、「クラスからインスタンスを作る」というのがどういうことか、また作ったインスタンスを利用するにはどうするのか、Stringを例に考えてみましょう。
public static void main(String[] args){ String str = new String("Hello"); str = str.toUpperCase(); System.out.println(str); }

これはStringクラスの「toUpperCase」というメソッドを利用した例です。このメソッドは、このStringインスタンスの値(ここでは"Hello"というテキスト)をすべて大文字に変換したものを返します。
このように、クラス(インスタンス)内のメソッドやフィールドは、
インスタンス.メソッド名(引数) インスタンス.フィールド名
このような形で指定し利用することができます。インスタンスにあるメソッドというのは、多くの場合、そのインスタンスを操作したりすることができます。またフィールドは、インスタンスの状況などを示す値として用いられます。
この「インスタンス」の利用というのは、Javaを使う上での最大のポイントとなるものでしょう。ある程度本格的にプログラミングを行うためには、これらはしっかり理解しなければなりません。とはいえ、「これこれこういうものです」「はい、分かりました」と簡単に理解できるようなら苦労はありません。
とりあえずは、Javaに標準で用意されているクラス類を実際に使いながら「こんな具合にインスタンスというのは利用するんだな」ということを感じ取っていってください。いきなり完璧に理解しようと思わず、少しずついきましょう。
まとめ
今回は、「値と変数」そして「制御構文」の基本について説明をしました。まぁ、ここまでは、読んでもあまり面白いものではなかったことでしょう。Javaという言語の文法の最も初歩となる部分ですから、これがわかったからといってすぐに何か面白いことができる、というわけでもありません。
が、これまでの部分がよく頭に入っていないと、これから先の説明で躓くことになりかねません。とはいえ、配列やインスタンスの利用などについては、頭で理解するよりも実際に何度も処理を書いていくうちに自然と覚えるものですので、あまりあせらなくても大丈夫です。ここでは「変数の使い方、基本的な制御構文の形」ぐらいまではしっかり頭に入れておいてください。その他のものは、これからプログラムを作っていく中で、少しずつ慣れていくようにしましょう。
