Java
11: public class Test_WExam1_26 { 22: final String str; 33: public Test_WExam1_26(final String t) { 44: str = t; 55: } 66: public Test_WExam1_26(final String s, final String t) { 77: this.(t); // illegal enclosing instance specification for type 88: s = "Chopin"; 99: } 1010:}
ある問題集の問題です。
コンパイルでエラーとなります。
その原因について、解答では8行目でコンパイルエラーになるとしております。
解説は、final変数sに代入しているから、とのこと。
実際に、Eclipse で実行すると、7行目でコンパイルエラー(illegal enclosing instance specification for type)となります。
試しに7行目「this.(t);」を「str = t;」とすると、解説通り、8行目でコンパイルエラーとなります。
- 解説とEclipseでの実行例とを比べて、解答の誤りと考えても良いのでしょうか?
そもそも、「this(t);」がどこを指すのかわかりません。
- 「str = t;」は初期化です。
同様に「s = "Chopin";」は初期化ではないのでしょうか?
それとも、括弧内で引数として記述された s 乃至 t は、= で繋がったことはないが、初期化完了しているということでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/03 05:29