javaのコンストラクタについての質問です。
下記のソースコードでコンパイルエラーになる理由を教えていただきたいです。
よろしくお願いいたします。
html
1public class Main{ 2 public static void main(String[] args){ 3 Sample s = new Sample(); 4 } 5}
html
1public class Sample { 2 void Sample(){ 3 System.out.println("A"); 4 } 5 Sample(String str){ 6 System.out.println(str); 7 } 8}
コンストラクタの戻り値が void になっていること、コンストラクタの中にローカルコンストラクタがあること、println の呼び出しの後ろにブロックがついていること、など複数の問題があります。
void だけ直さないんですね。そこをこたえてほしいというのはわかりましたが、なぜそれを尋ねるのかがわかりません。
すみません><; 問題集に出ていたので、そのままうつしました><;
コンストラクタに戻り値がvoidになっていて普通のメソッドになるから、
インスタンスしたときにコンパイルエラーになるということでしょうか?
「コンストラクタはこのように書く」あるいは「このように書いたものをコンストラクタとする」というルールがあります。
例えば漢字にもルールがあります。横に三本線を書いたら三で、「さん」と読み、「3」を表します。
あなたが聞いているのは、「三を△と書いたらなぜ間違いなのか」という質問と同じです。
自分には通じても人には通じません。
同じように、コンピューターに「これはコンストラクタだ」とわからせるためには、ルールに従って書かなければいけません。
その「ルール」はお持ちの本に書いてあると思います。
なお、void をつけても、普通のメソッドにはなりません。普通のメソッドのルールからも外れているからです。
今コンストラクタのルールをもう一回確認して意味わかりました!><
初歩的な質問ですみませんでした。
void をつけたときにSampleに黄色の波線が出ました!><;
メソッドのルールも確認してみます!!
回答1件
あなたの回答
tips
プレビュー