[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: ポインターと参照







みやざき@東洋情報%自己フォローです。

こんなん作ってみました。
----- Test.java -----
public class Test {
  // sub-string
  // Object
  public void modify_string(String str) {
    String tmp = str.substring(0,3);
    str = tmp;
  }

  // Object Array
  public void modify_array_string(String[] str) {
    String tmp = str[0].substring(0,3);
    str[0] = tmp;
  }

  public static void main(String[] arg) {
    String str1 = "replacing";
    String str2[] = new String[1];
    str2[0] = "replacing";

    Test ts1 = new Test();
    ts1.modify_string(str1);
    System.out.println(str1);

    Test ts2 = new Test();
    ts1.modify_array_string(str2);
    System.out.println(str2[0]);
  }
}

----- ここまで -----

みたらわかるかと思いますが、3文字きり出して、それを元の変数に
放り込む、とゆー意図はわかるかと思います。
# わかんなかったら、ごめんなさい;

で、結果。

*******************
C:\TEMP>javac Test.java

C:\TEMP>java Test
replacing
rep

C:\TEMP>
*******************

配列の値を操作したほうは、きちんと処理されているということに
なります。メソッドは「浅いコピー」をするので、配列の値を変更
したときに、その配列を直接渡すことができるのかな、と思います
が……。
# 書いてて、何書いてるかよーわからんぞ;

っと、そろそろ出かけないといけないので、このへんで。

//////////////////////////////////////////////////////////////////////
//東洋情報システム・オープンソリューション事業部ソリューション営業部
//                                 宮崎靖士   e-mail:soara@xxxxxxxxxx
//////////////////////////////////////////////////////////////////////