0

簡単なメモ: 私はまだプログラミングを始めたばかりで、以前のクラスでは静的メソッドについて触れていませんでした。私は教授に連絡を取ろうとしましたが、彼女は現在忙しすぎて応答できないようです. 以下は採点対象外の課題です。ここで何をしているのか知りたいだけです。

私がやっていること:

  1. 以下を実行する 1 つのメソッドを持つ HelloPrinter という名前のクラスを作成します。回数として int パラメータを受け入れます。b. ループで使用するセンチネル値としてそのパラメーターを使用します。c. ループ内で、switch ステートメントを使用して、数字が奇数の場合は「Hello, Dr. Zhang」を出力し、数字が偶数の場合は「Hello, Class」を出力します。
  2. メイン メソッドで、このクラスのオブジェクトをインスタンス化し、それを使用してメソッドを呼び出します。

  3. メソッドを静的メソッドに変更し、メソッドの呼び出しを変更します

  4. HelloPrinter で、counter1 という名前のプライベート変数を宣言してゼロに初期化し、counter2 という名前の別の int 変数を宣言してゼロに初期化します。
  5. counter2 に static という単語を追加します。
  6. パラメーターを受け取らない HelloPrinter クラスのコンストラクターを作成します。コンストラクターの本体で、counter1 と counter2 の両方を 1 増やします。
  7. getCounter1() という名前のクラスで、パラメーターを受け入れず、counter1 の値を返す別のメソッドを定義します。counter2 についても同じことを行います。
  8. HelloPrinter クラスの toString() メソッドを定義します。このメソッドは、counter1 と counter2 の値をラベル付きで返します。
  9. メイン プログラムですべてのメソッドをテストする

私が持っているもの:

public class HelloPrinter{
      private int counter1 = 0;
      private static int counter2 = 0;

      public HelloPrinter(int n){
           for(int x=1;x<=n;x++){

                int i=x;
      //        System.out.println(x); <---testing only
                switch(i%2){
                case 0:
                      System.out.println("Hello Dr. Z");
                      break;
                case 1:
                      System.out.println("Hello Class");
                      break;
     }
  }

}

(私はすでにゲッター (getCounter1/getCounter2) と toString を持っていますが、フラッディングしたくありません。) 私の質問は、メイン メソッドを静的メソッドに変更し、メソッドの呼び出しを変更するにはどうすればよいですか? 何をする必要がありますか?そして、どうすればそれを行うことができますか?繰り返しますが、これは成績ではありません。Java の復習になると思われます。残念なことに、前学期は私たちのクラスが遅れていました。なぜなら、彼女は部品をスキップし続け、後でそれらに戻らなければならなかったからです (私が通っている大学には、複数のプログラミング教授が必要です)。

どんな助けにも感謝します...ありがとう-Iin。

4

3 に答える 3

0

メイン メソッドを静的メソッドに変更し、メソッドの呼び出しを変更するにはどうすればよいですか? 何をする必要がありますか?

メソッドはmain静的メソッドです。

public static void main(String[] args)
{
    // This is the entry point into any JAR file. This is the first line of use 
    // code ran by the JRE.
}

メソッドがない場合main、プログラムはアプリケーションとして実行されません。mainテスト用のクラスなど、クラスにメソッドを追加する必要がありTestます。

public class Test
{
    public static void main(String[] args) {
       // Add in your testing code here.
    }

}
于 2013-08-30T23:01:36.700 に答える
0

main は常に Static です。

あなたが求められているのは、クラスに印刷を行う非静的メソッドを持つことだと思います。main から呼び出すには、そのクラスからオブジェクトを作成する必要があります。次に、静的メソッドをクラスに追加します。静的メソッドを呼び出すために、クラスからオブジェクトを作成する必要はありません。

そう:

1-

  public static void main(String[] args) {
     MyClass obj = new MyClass();
     obj.nonStaticMethod();
  }

2-

  public static void main(String[] args) {
     MyClass.staticMethod();
  }

また、メインを同じクラス (MyClass) に配置することも、メインを含めるためだけに別のクラスを作成することもできます。

于 2013-08-30T23:07:31.783 に答える
0

「私の質問は、メイン メソッドを静的メソッドに変更し、メソッドの呼び出しを変更する方法です。何をする必要がありますか?そして、どうすればそれを実行できますか?」

まず、mainすでに静的メソッドであると想定されています。その署名は

public static void main(String args[])

(の名前は重要ではありString[]ませんが、残りはそこにある必要があります。)

main( 「主な方法」と言ったときに話していなかった場合は、この前の 3 行を無視してかまいません)

次に、4、5、7、および 8 が完了したようです。1、2、および 3 に取り組むには、完全に異なるメソッドを作成する必要があり ( how getCounter1()、 、getCounter2()およびtoString()は独自の異なるメソッドにする必要があります)、指示に従ってください。

public HelloPrinter(int x)6 の場合、提供されたコードには、1、2、および 3 のメソッドが行うべきことを実行する1 つの引数 ( ) を取るコンストラクターがあります。それが言うように、引数を取らないコンストラクターが必要です(つまりpublic HelloPrinter() { ...)。

結局のところ、これらすべてのメソッドをmainそれ自体から呼び出す必要があります (9 が要求するように)。

于 2013-08-30T23:08:34.307 に答える