1

ブラケットの配置に問題があります。メインメソッドの範囲内でいくつかのメソッドを記述したかったのですが、常に赤い線がたくさん表示され、「この行に複数のマーカーがあります-トークン「void」の構文エラー、@が必要です-addVehicleBooking」というエラーが表示されます。タイプに解決できません」

メソッドが何も返さないようにしたいのですが、コードを実行して画面に何かを出力するだけです。

編集:

これがコードの始まりであり、未使用の変数などについて心配する必要はありません。みんなの助けてくれてありがとう=]。

import java.util.Scanner;

public class FerryMenu {

public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);
    Scanner scan = new Scanner(System.in);

    public static void addVehicleBooking()
    {
        String booking_ID = "";
        System.out.print("Enter your booking ID");
        booking_ID = input.next();
        String registration = "";
        System.out.print("Enter registration number");
        registration = input.next();
        String make_model = "";
        System.out.print("Enter vehicle make/model");
        make_model = input.next();
        int number_passengers = 1;
        System.out.print("Enter number of passengers");
        number_passengers = scan.nextInt();
    }

    String menu_choice = "";
    while(!"X".equals(menu_choice)){
        System.out.println("*** Ferry Ticketing System Menu ***");
        System.out.println("A   -   Add Vehicle Booking");
        System.out.println("B   -   Display Booking Info");
        System.out.println("C   -   Update Insurance Status");
        System.out.println("D   -   Display Booking Summary");
        System.out.println("X   -   Exit");

        System.out.print("Enter your selection: ");
        menu_choice = input.next();     
    }

}

}

4

8 に答える 8

7

メソッド内でメソッドを宣言することはできません..括弧についてではありません..構文についてです。

わかりました、ディーン、ここでもう一度説明します..

まずthrow away、あなたが書いたコード.. 新たに始めましょう..

次の手順に従って、問題に取り組みます。 -

  • クラスを作成するDemo
  • そのクラスにメソッドを追加し、getUserInput()
  • クラスにも main メソッドを追加します。
  • コンストラクターを持つ (0-arg)
  • ここで、プログラムの実行が開始されmain()ます..ユーザー入力を取得する場合..getUserInput()ここからメソッドを呼び出します..最初のステートメントとして..
  • で、getUserInputMethod()すべての入力を読み取った後、コンストラクターを呼び出してinstance variables..

  • この後、getUserInput()制御をメソッドに戻しますmain()。そこからコードを進めることができます。

于 2012-10-01T15:47:53.033 に答える
3

メソッド内でメソッドを定義することはできません。メソッドの外とクラスの中で宣言します。

public class FerryMenu {

    public static void addVehicleBooking()  
    {
         //...
    }

    public static void main(String[] args)   
    {   
         Scanner input = new Scanner(System.in);   
         Scanner scan = new Scanner(System.in);  

         // just call the method here
         addVehicleBooking();

         //...
    }
}
于 2012-10-01T15:47:22.653 に答える
0

メインの外に取り出してaddVehicleBooking() 呼び出し、コンストラクターで変数を宣言してみてください

于 2012-10-01T15:49:22.263 に答える
0

おそらく問題を引き起こしているメインの静的メソッド内に静的メソッドがあります。addVehicleBooking() メソッドを public クラス FerryMenu と main メソッドの間のスペースに移動しようとしましたか? (addVehicleBooking() メソッドは、メイン メソッドではなく、クラス FerryMenu のメンバーである必要があります)

于 2012-10-01T15:49:26.153 に答える
0

public static void main 内で静的メソッドを作成しているのはなぜですか。作る必要はないと思います。

「static void addVehicleBooking」から static という単語を削除します。この回答を編集し、修正したコードをできるだけ早く追加します。

于 2012-10-01T15:49:49.423 に答える
0

main メソッド内に addvehicalBooking メソッドを記述しています。したがって、これらの赤い線:そのメソッドをメインから削除します。

public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);
    Scanner scan = new Scanner(System.in);
}
    public static void addVehicleBooking()
    {
        String booking_ID = "";
        System.out.print("Enter your booking ID");
        booking_ID = input.next();
        String registration = "";
        System.out.print("Enter registration number");
        registration = input.next();
        String make_model = "";
        System.out.print("Enter vehicle make/model");
        make_model = input.next();
        int number_passengers = 1;
        System.out.print("Enter number of passengers");
        number_passengers = scan.nextInt();
    }
于 2012-10-01T15:47:46.053 に答える
0

メソッド内にメソッドを定義することはできません。次のようにクラスで定義できます。

import java.util.Scanner;

public class FerryMenu {

static Scanner input = new Scanner(System.in);
static Scanner scan = new Scanner(System.in);

public static void addVehicleBooking()
{
    String booking_ID = "";
    System.out.print("Enter your booking ID");
    booking_ID = input.next();
    String registration = "";
    System.out.print("Enter registration number");
    registration = input.next();
    String make_model = "";
    System.out.print("Enter vehicle make/model");
    make_model = input.next();
    int number_passengers = 1;
    System.out.print("Enter number of passengers");
    number_passengers = scan.nextInt();
}

public static void main(String[] args)
{


    String menu_choice = "";
    while(!"X".equals(menu_choice)){
        System.out.println("*** Ferry Ticketing System Menu ***");
        System.out.println("A   -   Add Vehicle Booking");
        System.out.println("B   -   Display Booking Info");
        System.out.println("C   -   Update Insurance Status");
        System.out.println("D   -   Display Booking Summary");
        System.out.println("X   -   Exit");

        System.out.print("Enter your selection: ");
        menu_choice = input.next();     
    }
}
}

フィールド「入力」および「スキャン」は、静的として呼び出すため、静的として定義する必要があります

于 2012-10-01T15:53:56.117 に答える
0

addVehicleBooking外側に配置する必要がありますmain。ところで:投稿されたコードでは使用されていないため、ユーザーの入力に使用される変数をどこかで使用していることを願っています。

リファクタリングされたコードは次のようになります。

import java.util.Scanner;

public class FerryMenu {
public static void main(String[] args) {
    addVehicleBooking();

}

public static void addVehicleBooking() {
    String menu_choice = "";
    Scanner input = new Scanner(System.in);
    Scanner scan = new Scanner(System.in);

    String booking_ID = "";
    System.out.print("Enter your booking ID");
    booking_ID = input.next();
    String registration = "";
    System.out.print("Enter registration number");
    registration = input.next();
    String make_model = "";
    System.out.print("Enter vehicle make/model");
    make_model = input.next();
    int number_passengers = 1;
    System.out.print("Enter number of passengers");
    number_passengers = scan.nextInt();

    while (!"X".equals(menu_choice)) {
        System.out.println("*** Ferry Ticketing System Menu ***");
        System.out.println("A   -   Add Vehicle Booking");
        System.out.println("B   -   Display Booking Info");
        System.out.println("C   -   Update Insurance Status");
        System.out.println("D   -   Display Booking Summary");
        System.out.println("X   -   Exit");
        System.out.print("Enter your selection: ");
        menu_choice = input.next();
    }

}

}
于 2012-10-01T15:56:54.360 に答える