thisについて-java vol.41
前回はフィールドについて紹介した。
今回は補足的な内容となる。
前回はこちらを見ていただきたい。
thisとは何なのか、補足としてフィールドとローカル変数、引数の重複について今回は書いていく。
1.thisとは
thisはフィールドを宣言した時に、メソッド内で生成される同名の変数や引数と区別するために着けるもののこと。
以前ひとつのメソッド内で同名の変数を宣言することはできないといったが、フィールドはメソッド内で生成されるローカル変数ではないため、フィールド名とローカル変数が重複する名前だとしてもエラーにならない。
2.例
ローカル変数で宣言した変数が重複する場合と、引数で重複する場合についてい見ていこう。
このようにフィールドのstrとローカル変数strというもので名前が重複している。
黄色い波線が出ているがこれはエラーではない。
このようにフィールド使わないの?っていうことを親切に教えてくれている。
これをコンソールに表示させるとどうなるのかやってみよう。
このようになりローカル変数のstrが表示された。
次に引数の場合はどうなるのか。
このようになる。メソッドが呼び出されるときに引数としてString型のデータをもらうだけだ。
ちなみに引数とローカル変数の重複はできない。
コンソールに表示させるとどうなるか。今回は引数で「引数」という文字を渡そうと思う。
このように引数が渡されコンソールに表示させると「引数」が表示された。
では、どうやってこの状況でフィールドを表示させるのか。
3.フィールドを指定
フィールドを指定するときに今回mainで紹介するthisが出てくるというわけだ。
このようにthisと.(ドット)を付けるだけ簡単だ。
これで区別ができてしまう。
結果コンソールには、フィールドが表示された。
引数でも同じだ。
引数の場合はこのような形を目にすることがある。
フィールドに引き数を足してその結果をまたフィールドに反映させるというプログラムだ。
このように使い、500足して100足して、300足すということを行っている。
その結果がコンソールに表示されているというものなのだ。
少しややこしいかもしれないが、フィールド名とローカル変数や引数を重複させることのメリットがある。
4.重複のメリット
今回紹介したものでは、プログラムとしてはとても小さなものだ。
これ以上にフィールドやメソッドが増えた時どのフィールドとメソッドを関連付けさせるのかも重要になってくる。
その時に、多くの変数を扱っていて把握が無づかしくなってしまっても、フィールドの名前と一致しているものを関連付けさせるだけでも変数の管理が楽になると思う。そのために名前を重複させて使うことがある。
これが私が思う重複させることのメリットだと思う。
今回は以上。
では、また次回
元体育会系文系エンジニア石黒
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?