つまりコーディングの手間を省けたらなってことかしら?
そうね
A a = new A()
のように宣言型とコンストラクタが一致する時に限っては
a = new A()
こう書いてもOKにしてしまうのもありね。
そうなっていないのはスコープの管理じゃないかしら。
コード内のある1点を見たとき
a = new A()
こう記述してある場合
これが
A a = new A()
の省略なのか
それともどこかで変数宣言されている可能性もあるわ。
具体的に書くと
A a;
void load() {
a = new A();
}
と
A a;
void load() {
A a = new A();
}
この2つはまったく別のものだわね。
Javaの場合こういう記述も可能だから
スコープを明確にする必要があるんだと思うわよ。
お礼
ありがとうございます。 なるほど、オブジェクト指向を意識しているために、 型宣言時に課しているということですね。 確かに、そのほうがコンパイル時に間違いを見つけやすいと 考えることができますね。 実行時に考える手間よりも、実装時に型宣言を 意識した作りとなっているという意味ですか。 とても理解が深まりました。助かりました。