答えはカッコいい方?
基本情報の勉強中のこと、解説を読んでも分からない問題に出くわしてしまいました。
ちなみに、どのような問題かというと、「コンストラクタ内で引数ありの同名コンストラクタを呼び出す処理」というものでした。
解説には、「この場合this(引数)を使う」としか書いてありません。
えーと、これは”解説”と言えるのでしょうか?
答えだけと、かわらないような・・・
ということで、「this(引数)を使う」ということはわかったのですが、なぜ「コンストラクタ名(引数)」ではダメなのか全く分かりませんでした。
そこに、Nさんがちょうど通りかかったので、質問してみたところ。
「そっちの方がカッコいいから。」
とのことでした。
もちろん、「コンストラクタに関する制限の箇所を読めば分かる」という助言もちゃんといただきました。
そこで、さっそく調べたところ、
「コンストラクタは、同一クラスのコンストラクタから this(引数) によって、あるいは、直接のサブクラスから super(引数) のかたちによって以外に、new 演算子を介さずに明示的にメソッドのように呼び出すことはできない。」
というものがありました。
これでひとつ賢くなりました。Nさんありがとうございました。
コメント