gpt4 book ai didi

java - 从同一类中的其他方法调用方法

转载 作者:行者123 更新时间:2023-12-01 10:40:46 25 4
gpt4 key购买 nike

我试图从同一个类中的另一个方法调用一个方法,例如当“enterValues”方法完成时,我希望它返回主菜单。有人可以解释一下我该怎么做吗?我对这里对象的使用也有点困惑,我是否正确地认为我需要像我在这里所做的那样在每个方法中创建一个对象,以便调用其他方法?

    import java.util.Scanner;
public class Conversion {

int value;

public void mainMenu() {
int menuChoice;

Scanner menuScan = new Scanner(System.in);

Conversion mainMenu = new Conversion();

System.out.println("1. Enter values and type -1 to stop");
System.out.println("2. Euros");
System.out.println("3. Dollars");
System.out.println("4. Yen");
System.out.println("5. Rupees");
System.out.println("6. Exit");


while (!menuScan.hasNextInt() || (menuChoice = menuScan.nextInt()) > 6) {
menuScan.nextLine();
System.err.println("Please enter a valid menu option 1 - 6: ");
}


switch (menuChoice) {
case 1:

mainMenu.enterValues();

case 2:

}


}

public void enterValues() {

Conversion enterValues = new Conversion();

Scanner valueScan = new Scanner(System.in);
System.out.print("Enter value to convert: ");
value = valueScan.nextInt();
System.out.println("Value entered. Returning to main menu.");

valueScan.close();

enterValues.mainMenu();
}

public static void main(String[] args) {


Conversion main = new Conversion();

main.mainMenu();

}

}

最佳答案

当您处于非静态方法中时,您已经处于类的实例中,因此无需创建另一个实例。

此外,当您处于类的实例中时,您只需直接调用其他方法,例如 mainMenu();

我稍微修改了您的代码以反射(reflect)这一点:

import java.util.Scanner;
public class Conversion {

int value;

public void mainMenu() {
int menuChoice;

Scanner menuScan = new Scanner(System.in);

System.out.println("1. Enter values and type -1 to stop");
System.out.println("2. Euros");
System.out.println("3. Dollars");
System.out.println("4. Yen");
System.out.println("5. Rupees");
System.out.println("6. Exit");


while (!menuScan.hasNextInt() || (menuChoice = menuScan.nextInt()) > 6) {
menuScan.nextLine();
System.err.println("Please enter a valid menu option 1 - 6: ");
}


switch (menuChoice) {
case 1:

enterValues();

case 2:

}


}

public void enterValues() {


Scanner valueScan = new Scanner(System.in);
System.out.print("Enter value to convert: ");
value = valueScan.nextInt();
System.out.println("Value entered. Returning to main menu.");

valueScan.close();

mainMenu();
}

public static void main(String[] args) {


Conversion main = new Conversion();

main.mainMenu();

}

}

关于java - 从同一类中的其他方法调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34416904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com