◆ Java
Java自体、仕事でも時々触れることはありますが、管理やドキュメント対応のほうが多くなってきて、コードを書く機会がかなり減ってきており、特にJavaについては、最近のコードは見ていても、「???」と思う書き方も結構出てきています。
自分がまともにJavaのコードを書いていたのは…正直、Java 1.5とかそういう時代。
今のように「Java SE〜」というような表記ではなく、「J2SE (*)」のような表記でしたね。
(*) J2SE: Java 2 Platform, Standard Edition
最近はまたJavaに触れる機会も増えてきた…ということもあり、
そのため、久々にJavaの勉強でもしようかなと思いました。
★ 型推論 (var) : Java SE 10〜?
Javaといえば、当初は、型定義はしっかりとしていなければなりませんでした。
ただ、変数の初期化などで、設定値から変数の型は明らかに決まる…ということで、「型推論」というものができたようです。
これでいいというのであるので、簡単ですね。
「var」定義といえば、自分の場合は、「JavaScript」のイメージが強かったですが、JavaとJavaScriptがまた少し似てしまった感じがしますね。
もちろんいくつか制約はあるようです。
- 初期化時の初期値省略不可
- 複数定義不可
- ローカル変数のみにしか使用できない
● 初期化時の初期値省略不可
初期化時に型推論で変数の型を決めるため、初期化は必須。
型推論の意味を考えたら自明ですね。
もちろん、初期化後に同変数に異なる変数型の値を代入してもエラーになります。
● 複数定義不可
varで、複数定義をまとめての宣言はできません。
まあ、これは変数ごとに型が異なる可能性があるから…という理由からでしょうか。
別に1行で複数の変数を定義するまでは必要はないですし、異なる型の変数をまとめて定義する必要性もないので、影響はないですね。
● ローカル変数のみにしか使用できない
varでの変数定義は、ローカル変数定義時にしか使用できません。
クラス変数などでは使えないということですね。
クラス変数とかだと、外部クラスからアクセスもあるので、そちらは型推論という機構は使用できず、はっきりと定義が必要ということですね。