放置支架时遇到一些麻烦。我想在我的main方法的范围内编写一些方法,但我总是最终得到一堆红线和错误告诉我“这条线上有多个标记 - 令牌“void”,@ expected上的语法错误 - 无法将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();
}
}
}
答案 0 :(得分:7)
你不能在方法中声明方法..它不是关于括号..它是关于语法。
好的,Dean,我在这里再次描述一下......
首先,throw away
您编写的代码..让我们重新开始..
按照以下步骤解决您的问题: -
Demo
getUserInput()
main()
开始执行..如果您想接受用户输入..请从此处调用getUserInput()
方法..作为第一个声明.. 在getUserInputMethod()
中,在阅读完所有输入后,调用构造函数初始化instance variables
..
在此之后,您的getUserInput()
会将控件返回到您的main()
方法..您可以从那里继续执行代码..
答案 1 :(得分: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();
//...
}
}
答案 2 :(得分:0)
您正在main方法中编写addvehicalBooking方法。 因此那些红线:从main中删除该方法。
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();
}
答案 3 :(得分:0)
尝试从main外部取出addVehicleBooking()
并调用它并在构造函数中声明变量
答案 4 :(得分:0)
你的主静态方法中有一个静态方法,可能会导致问题。您是否尝试将addVehicleBooking()方法移动到公共类FerryMenu和main方法之间的空间? (addVehicleBooking()方法应该是FerryMenu类的成员,而不是主方法)
答案 5 :(得分:0)
为什么要在public static void main中创建一个静态方法。我不认为有必要这样做。
从“static void addVehicleBooking”中删除单词static。 我将编辑此答案并尽快添加更正后的代码。
答案 6 :(得分: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();
}
}
}
和字段“ input ”和“ scan ”必须定义为 static ,因为您将它们作为静态调用
答案 7 :(得分: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();
}
}
}