简单;不能在Java中调用自己的方法吗?

时间:2015-03-27 17:57:04

标签: java

我正在尝试为我的基础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();
        }

编辑:抱歉。

错误:重复方法。我没有尝试创建两个具有相同名称的方法,我试图调用它下面的方法。

2 个答案:

答案 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() {
        ..
    }
}