0
  • メッセージを出力するデフォルトのコンストラクター (引数を取らないコンストラクター) を持つクラスを作成します。main() メソッドで、このクラスのオブジェクトを作成します。
  • オーバーロードされたコンストラクターを手順 1 のコードに追加します。新しいコンストラクターは String 引数を受け取り、それをメッセージと共に出力する必要があります。new コンストラクターを使用して、このクラスの 2 番目のオブジェクトを作成するように main() を変更します。

したがって、2 番目の部分は文字通り別の言語で書かれたようなものです。どうすればよいかまったくわかりません。最初の部分は、これまでに得たものです。

public class Constructors {
    System.out.println("Message");
    public static void main(String[] args) {
    }
}

そのメッセージを印刷しようとすると、エラーが発生します。私はとても混乱しています。私はあなたに私のラボを依頼しているわけでは決してありません。

4

2 に答える 2

2

メソッド呼び出しは、メソッド本体または初期化式またはブロックの一部である必要があります。printlnその呼び出しを実際のコンストラクター(google that)に移動すると、準備完了です。初心者向けの「 Java の開始(私のスティッキー スレッド)」スレッドに進むことができます(お気軽に提案をお寄せください)。

ところで、デフォルトと引数なしのコンストラクターには違いがあります。デフォルトのコンストラクターは常に引数なしのコンストラクターであり、そうでない場合に備えて自動的に提供されますが、その逆は当てはまりません。

于 2011-06-16T19:05:36.637 に答える
2

コンストラクターはクラスの名前であってはなりません。コンストラクターは、クラス (オブジェクト) のインスタンスを作成するメソッドです。

したがって、最初のポイントは、メイン メソッドから呼び出したときにメッセージを出力するパラメーターなしでオブジェクトを作成することを意味します。

public class WhateverClass{

    //this is the first constructor
    public WhateverClass(){

        System.out.prinln("A message");

    }

    //this is the main method
    public static void main (String[] args){
        new WhateverClass(); //will print the message
    }
}

次に、最初のコンストラクターをオーバーロードする別のコンストラクターを作成します。これは、パラメーターを取る以外は同じシグネチャを持つためです。そして、最初のメソッドとまったく同じように main メソッドから呼び出します。ここ:

public class WhateverClass{

    //this is the first constructor
    public WhateverClass(){

        System.out.prinln("A message");

    }

    //this is the second constructor
    public WhateverClass(String message){

        System.out.prinln(message);

    }

    //this is the main method
    public static void main (String[] args){
        new WhateverClass(); //will print the message
        new WhateverClass("A message");
    }
}

print メソッドはどのメソッドにも含まれておらず、その場所から実行できないため、例は機能しません。

OO プログラミングの基本に関する書籍や記事を実際に読む必要があります。

于 2011-06-16T19:12:33.340 に答える