我正在尝试为我的基础Java课程完成一个项目,但我遇到了一个很容易理解的奇怪问题。
http://i.gyazo.com/2016f61886dc314dd44017bbfea94181.png
为什么我不能在它之前调用ATMMenu方法,因为我可以自己调用它?
我认为Eclipse正在考虑创建一个具有相同名称的新方法,当我尝试做的就是调用它时。我究竟做错了什么? :/
Client client = new Client(firstName, lastName, emailAddress, phoneNumber, deposit);
ATMMenu(); // error here
void ATMMenu() { // error on this line too
System.out.println("Select from the following menu options below:");
System.out.println("");
System.out.println("[1] Check Balance");
System.out.println("[2] Withdraw");
System.out.println("[3] Deposit");
System.out.println("[4] Show Personal Details");
System.out.println("[5] Exit");
System.out.println("============================================");
System.out.println("Please select your option now:");
option = sc.nextInt();
while (exitStatus == 1) {
if (option == 1) {
checkBalance();
ATMMenu();
}
编辑:抱歉。
错误:重复方法。我没有尝试创建两个具有相同名称的方法,我试图调用它下面的方法。
答案 0 :(得分:2)
您无法在类声明中的任何位置调用实例方法。必须在另一个方法的范围内或在初始化程序中调用它,或者初始化字段。
答案 1 :(得分:1)
您的问题是您正在呼叫ATMMenu();在方法声明之外的第47行。编写它的方式就像执行一行代码一样。如果您只是尝试调用ATMMenu()方法,则需要一个代码入口点 - 可能是main()方法。在这种情况下,例如:
public class Client {
..
public static void main(String[] args) {
Client client = new Client(...);
client.atmMenu(); // camel case convention is lowerCaseFirstLetterOnMethodName
}
..
void atmMenu() {
..
}
}