Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用其他方法中的变量_Java_Variables_Methods - Fatal编程技术网

Java 使用其他方法中的变量

Java 使用其他方法中的变量,java,variables,methods,Java,Variables,Methods,我有两个Java方法 在第一种方法中,我要求用户做出选择,然后我希望存储此选择以供将来使用 我编写的第二个方法只是为了调用第一个方法来使用此选项 现在,我想使用这个变量并将其添加到ArrayList中有可能吗? public static void letUserChooseAgain () { System.out.println("Please choose an option (1/2):"); System.out.println("1. Dollars to Pound

我有两个Java方法

  • 在第一种方法中,我要求用户做出选择,然后我希望存储此选择以供将来使用
  • 我编写的第二个方法只是为了调用第一个方法来使用此选项
  • 现在,我想使用这个变量并将其添加到
    ArrayList
    有可能吗?

    public static void letUserChooseAgain () {
        System.out.println("Please choose an option (1/2):");
        System.out.println("1. Dollars to Pounds");
        System.out.println("2. Pounds to Dollars");
        Scanner scanner = new Scanner(System.in);
        double userChoice = scanner.nextDouble();
        userChoiceToRemember(userChoice);
    }
    
    
    public static void userChoiceToRemember (double number) {
        double remember = number;
    }
    

    您需要创建一个数据结构,以保持需要共享的值。通常,这是通过定义一个类来完成的,该类的成员保存该类所需的数据,方法可以访问和更改成员。这个包含成员和访问器方法的简单java类称为JavaBean

    本例中的另一个选项是使用类型为
    ArrayList
    的静态变量来保留用户选择

    我会选择一个简单的类,它使用
    ArrayList
    成员保存用户选择。另外一个类是使用用户提供的输入控制程序流的类


    在主类-程序的入口点中,您需要实例化控制流的类和存储用户选择的类。

    如果我理解正确,您想在这样的数组中保存数字吗

    Array<Double> numbers = new Array<>();
    
    public static void letUserChooseAgain () {
        System.out.println("Please choose an option (1/2):");
        System.out.println("1. Dollars to Pounds");
        System.out.println("2. Pounds to Dollars");
        Scanner scanner = new Scanner(System.in);
        double userChoice = scanner.nextDouble();
        userChoiceToRemember(userChoice);
    }
    
    
    public static void userChoiceToRemember (double number) {
        double remember = number;
        numbers.add(number);
    }
    
    数组编号=新数组();
    公共静态void LetUserChooseAgin(){
    System.out.println(“请选择一个选项(1/2):”;
    System.out.println(“1美元兑英镑”);
    System.out.println(“2英镑兑美元”);
    扫描仪=新的扫描仪(System.in);
    double userChoice=scanner.nextDouble();
    userChoiceToRemember(userChoice);
    }
    公共静态void userchoicetorember(双倍数字){
    双记忆=数字;
    数字。添加(数字);
    }
    
    我相信,如果能找到源代码,我完全理解您的要求

    可采用两种不同的方法提出:

    方法1

    import java.util.ArrayList;
    static ArrayList < Double > numbers = new ArrayList < Double > ();
    
      public static void letUserChooseAgain ()
      {
        System.out.println ("Please choose an option (1/2):");
        System.out.println ("1. Dollars to Pounds");
        System.out.println ("2. Pounds to Dollars");
        Scanner scanner = new Scanner (System.in);
        double userChoice = scanner.nextDouble ();
          numbers.add (userChoice);
          userChoiceToRemember (userChoice);
      }
    
    
      public static void userChoiceToRemember (double number)
      {
        double remember = number;
        System.out.println ("Remembered User Choice :" + numbers.get (0));
      }
    
    import java.util.ArrayList;
    静态ArrayList数字=新ArrayList();
    公共静态void LetUserChooseAgin()
    {
    System.out.println(“请选择一个选项(1/2):”;
    System.out.println(“1.美元兑英镑”);
    System.out.println(“2.英镑兑美元”);
    扫描仪=新的扫描仪(System.in);
    double userChoice=scanner.nextDouble();
    numbers.add(userChoice);
    userChoiceToRemember(userChoice);
    }
    公共静态void userchoicetorember(双倍数字)
    {
    双记忆=数字;
    System.out.println(“记住的用户选择:+numbers.get(0));
    }
    
    方法2

    import java.util.ArrayList;
      static ArrayList < Double > numbers = new ArrayList < Double > ();
      public static void letUserChooseAgain ()
      {
        System.out.println ("Please choose an option (1/2):");
        System.out.println ("1. Dollars to Pounds");
        System.out.println ("2. Pounds to Dollars");
        Scanner scanner = new Scanner (System.in);
        double userChoice = scanner.nextDouble ();
          userChoiceToRemember (userChoice);
      }
    
    
      public static void userChoiceToRemember (double number)
      {
        double remember = number;
        numbers.add (remember);
        System.out.println ("Remembered User Choice :" + numbers.get (0));
      }
    
    import java.util.ArrayList;
    静态ArrayList数字=新ArrayList();
    公共静态void LetUserChooseAgin()
    {
    System.out.println(“请选择一个选项(1/2):”;
    System.out.println(“1.美元兑英镑”);
    System.out.println(“2.英镑兑美元”);
    扫描仪=新的扫描仪(System.in);
    double userChoice=scanner.nextDouble();
    userChoiceToRemember(userChoice);
    }
    公共静态void userchoicetorember(双倍数字)
    {
    双记忆=数字;
    数字。添加(记住);
    System.out.println(“记住的用户选择:+numbers.get(0));
    }
    

    我希望上面的代码能帮助你,祝你度过愉快的一天

    给它一个
    ArrayList
    来添加:

    public static void letUserChooseAgain () {
        Scanner scanner = new Scanner(System.in);
        double userChoice = scanner.nextDouble();
        ArrayList<Double> myArrayList = new ArrayList<Double>()
        userChoiceToRemember(userChoice, myArrayList);
    }
    
    
    public static void userChoiceToRemember (double number, ArrayList<Double> anArrayList) {
        anArrayList.add(number);
    }
    
    这是假设有一个很好的理由你不能:

    public static void letUserChooseAgain () {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Double> myArrayList = new ArrayList<Double>()
        myArrayList.add(scanner.nextDouble());
    }
    
    
    publicstaticvoid-letUserChooseAgain(){
    扫描仪=新的扫描仪(System.in);
    ArrayList myArrayList=新建ArrayList()
    添加(scanner.nextDouble());
    }
    
    将其存储在局部变量中(就像您当前所做的那样)是无用的,因为一旦方法返回,它就会消失。您需要将其存储在类的某个静态或实例变量中。
    public static void letUserChooseAgain () {
        Scanner scanner = new Scanner(System.in);
        double userChoice = scanner.nextDouble();
        ArrayList<Double> myArrayList = new ArrayList<Double>()
        myArrayList.add(userChoiceToRemember(userChoice));
    }
    
    
    public static void userChoiceToRemember (double number) {
        return number;
    }
    
    public static void letUserChooseAgain () {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Double> myArrayList = new ArrayList<Double>()
        myArrayList.add(scanner.nextDouble());
    }