Stringクラスのオブジェクトの作成と初期化

広告

では標準クラスの中でStringクラスのオブジェクトを作成し変数に代入する方法を確認していきます。

文字列は複数の文字を連続させて一つの固まりとして扱うものです。そして文字列は「文字列」で記載したとおり"abc"や"こんにちは"のようにダブルクォーテーション(")で囲んで表現することができます。これらは実はStringクラスのオブジェクトとして実現されているものです。

丁寧に書けば文字列として表現したい文字の集まりを指定してStringクラスのオブジェクトを作成しますが、これらを全てまとめて"文字列"と記述するだけで実現できるようになっています。次のコードを見てください。

String str;

char data[] = {'文', '字', '列'};
str = new String(data);

この記述の仕方は何種類か用意されているStringクラスのオブジェクトを作成する方法の一つです。まずStringクラスの変数を宣言しています。そして文字列を構成する文字を集めたchar型の配列を用意しStringクラスの引数として指定してStringクラスのオブジェクトを作成してから変数に代入して初期化しています。これは次のように記述した場合と同じです。

String str;

str = "文字列";

単に"文字列"などのように記述するだけでStringクラスのオブジェクトが作成されます。この記述方法が用意されているおかげで画面に文字列を表示したい場合などは、いちいちStringクラスのオブジェクトをnew演算子を使って作成しなくても複数の文字をダブルクォーテーション(")で囲むだけで済みます。

System.out.println("こんにちは");

なお基本データ型の場合と同じように変数の宣言と初期化をまとめて次のように記述することができます。

String str = "文字列";

通常はこの方法でStringクラスのオブジェクトを作成しておけば問題ありません。

参照型の変数

基本データ型の値を変数に代入した時には変数そのものが値を格納する入れ物となっていました。また配列を変数に代入した時には入れ物は別の場所で用意され変数には入れ物の位置が格納されていました。(配列の参照型変数については「参照型の変数の考え方」を参照して下さい)。

クラスのオブジェクトを変数に代入する場合は、配列の場合と同じく参照型の変数となります。よってStringクラスのオブジェクトを作成して変数に代入した場合は、まず入れ物が別に用意されてStringクラスのオブジェクトが格納され、変数には入れ物の位置が格納されます。

文字列は一文字の場合もありますし長い文字列の場合もあります。文字の数によって必要な入れ物の大きさは変わってくるはずですがStringクラスの変数には入れ物の位置だけが格納されているので文字列が何文字であっても同じように扱うことができます。

サンプル

では簡単な例で試しておきます。

JSample2_1.java

class JSample2_1{
  public static void main(String args[]){
    String str = "こんにちは";

    System.out.println(str);
    System.out.println("こんばんは");
  }
}

コンパイル後に実行すると次のように表示されます。

p2-1

( Written by Tatsuo Ikura )