2

最近、Java を少し練習しています。あるクラスと form という別のクラスにランダムなキーボードを作成しました。

別のクラスからキーボードメソッドを追加することができました。

しかし、テキスト ( System.out.println("text"); ) を追加しようとすると許可されず、外側のラッパーで追加すると表示されません。

キーボード クラス:

import java.util.Scanner;

class Keyboard {
   public static void main(String args[]){
      System.out.print("Enter your name... ");
      Scanner sc = new Scanner(System.in);
      System.out.println("Your name is " + sc.nextLine());

   }
}

FillInForm クラスの問題 1:

public class FillInForm {


    Keyboard j = new Keyboard();
    System.out.println("text"); <-------------- doesn't allow me. Why?


}

FillInForm クラスの問題 2:

public class FillInForm {


    Keyboard j = new Keyboard();
{
        System.out.println("text");  <---------Also doesn't work. Why?
    }
}

これは練習用です。クラスとメソッドは意味を成す必要はありません。ランダムに作りました。「FillInForm」というクラスにテキストを表示できない理由を知りたいだけです。

この質問は些細なことだと思いますが、誰か助けてもらえますか? ありがとう。

4

3 に答える 3

2

クラス ブロックではなく、メソッド内にステートメントを配置します。宣言として、宣言Keyboardはクラス ブロックに存在できますが、printlnステートメントには存在できません。

public class FillInForm {

    Keyboard j = new Keyboard();

    public void myMethod() {
       System.out.println("text");
   }
}

問題 2 の場合、問題は、非宣言ステートメントをクラス ブロックに配置しようとしている場合と同じです。

入力機能がクラスのstaticメイン メソッドであることを考えると、クラスのラッパーとして使用する場合を除きKeyboard、この機能は のmainメソッドに移動するのが最適です。後者の場合は、インスタンス メソッドを作成して から機能にアクセスできます。FillInFormKeyBoardScannerScanner#nextLine

于 2013-02-10T19:31:49.777 に答える
0

コードはメソッドの一部である必要がありますが、最後の2つのコードには当てはまりません。

于 2013-02-10T19:31:55.073 に答える
0

コードはメソッドの一部である必要があります。そして、メインメソッドを1つのクラスに追加する必要があります。

public class FillInForm {

... other methods ...

  public static void main(String[] args) { // static means, this method does not belong to an instance of the class, it belongs to the class itself
    Keyboard j = new Keyboard();
    System.out.println("text"); 

};
}

主なメソッドはアプリケーションのエントリポイントであり、アプリケーションの起動時に自動的に呼び出されます

于 2013-02-10T19:34:04.067 に答える