今日は昨日やった配列に似たArrayListクラスと、Stringクラス、StringBuilderクラスを習いました。
ArrayListクラスは配列と言って引き出しが多くあるタンスのようなものと似たようなものです。
似たようなものと明記したのは、完全に同じでは無いから。
大きく違う点は、引き出しの数を変えれるか帰れないかの点です。
配列では1度引き出しの数を決めてしまっては後から変えることはできません。
1度決めるとそのまんま。
ですが、ArrayListクラスを使えば引き出しの数は後からでも変えることが可能です。
なので、配列よりも使い勝手が良さそう。
ただ、使う際は配列よりもめんどくさいのがネック。
クラス名を定義する前にimport Java.util.ArrayListをつけなければ行けません。
また、値を取り出したい時や値を代入したい時も少し面倒。
値を入れたい時は、変数名.add(入れたい値)
取り出したい時は、変数名.get(取り出したい時値のインデックス番号)
のような感じで行います。
それが一通り終わったら、次はStringクラスとStringBuilderクラスを学びました。
どちらも文字列を扱うことが出来る参照型のクラスですが、大きく違うところは参照されるオブジェクトの値が変えられか変えれないかの違い。
参照型のクラスは基本的に値を入れられると、オブジェクトという部屋を作ります。
その中には値が入っており、変数がその部屋を参照(示す)ことで変数=値ということになってます。
そしてStringクラスの場合、オブジェクトという部屋に入っている値は変えることができません。
どういうことかというと、例えばStringクラスのsという変数を作ります。
そして、そのsにHelloを代入。
そうするとこのStringクラスのオブジェクトという部屋にはHelloが入ります。
次にsにByeを代入。
当然、今sを示すとByeが出力されるのですが、実はこのByeはもともと出来ていたHelloとは違うオブジェクトに入っているんです。
要するにHelloが入っているオブジェクトは今もどこかで過ごしているということ。
Stringクラスは絶対にオブジェクトの中の値を変えることは出来ないんです。
反対にStringBuilderはオブジェクトの中の値を変えることが可能。
Stringクラスと比べて毎回毎回オブジェクトを生成しなくてよくなります。
こんな感じで、色々と学んだわけですが、最初は何から何までさっぱり
「やべ、ついていけるか?」
と、思ってましたが、ここで何もしない訳にはいかないと感じ、質問をしまくることに
すると徐々に分かってきて、心のモヤモヤを全て無くした状態で帰宅することが出来ました。
そもそも分からないことを学ぶのが研修だし、先生も教えるのが仕事。
なら、何も考えずに自分が成長することだけを考えて、図々しすぎるぐらい質問する
イライラされたらそれはあっちが悪い
そんな気持ちで今後は研修を受けようと思いました。
分からないものをそのままにせず、すぐに聞いて、解消する。
まだまだ壁にはぶつかると思うけど、なんとか乗り越えます!!!
周りに力も頼りながら進む