Java:在其他方法和类

时间:2015-10-23 21:43:45

标签: java arrays

所以我在main方法中创建了一个数组,它从文件读取输入然后将其添加到数组中,它还使用命令阅读器检查文件是否有数据。如何使任何特定的数组元素可用于其他方法?拿一个名为array []的数组,如何访问数组[1]并在其他方法中使用它?谢谢,对不起,如果这是一个明显的问题,但我对java很新。

修改

源代码:

import java.io.File;

// Reads commands from input file

public class Example {

    public static void main(String[] args) {

        if (args.length < 1) {
            System.out.println("No args given.");
            System.exit(1);
        }

        // reads every argument given as a filename
        for (String filename : args) {
            File file = new File(filename);
            //creating a command reader from a file
            CommandReader Reader = new CommandReader(file);

            // reads every line of the file
            while(Reader.hasNext()) {
                // gets the given command from the next line
                String[] command = reader.next();
            }
        }
    }
}

我想在主类之外使用这些。我有一个命令阅读器类,它以这样的方式对它们进行格式化,以便给出类似的命令,但这对于在main之外使用数组并不重要。谢谢

command[0] => "add" 
command[1] => "AlbinoMilk's great adventure"
command[2] => "AlbinoMilk"
command[3] => "250"

4 个答案:

答案 0 :(得分:1)

此处的关键字是范围。变量的范围定义,变量是可见的并且可以使用。通常,Java中变量的范围被定义为围绕变量定义的最里面的花括号。

有几种方法可以访问当前范围之外的变量。

  • 当您从具有访问权限的某个地方调用方法时,请将该变量作为参数添加到方法中。这样,该功能也可以访问。
  • 移动变量的定义。例如,如果您在<div class="container"> <div> <p id="one">Div One</p> </div> <div> <p id="two">Div Two</p> </div> </div> #one { width:60px; background-color:green; padding:10px; cursor:pointer; } #two { width:60px; background-color:green; padding:10px; display:none; cursor:pointer; } $(document).ready(function () { $('#one').click(function () { $(this).hide(); }); $('#one').click(function () { $('#two').show(); }); $('#two').click(function () { $(this).hide(); }); $('#two').click(function () { $('#one').show(); }); }); 中有一个局部变量,只需将其向上移动一级,然后将其定义为该类的(私有)成员。现在,您班级中的所有功能都可以访问它。只有在将来帮助类或使代码更具可读性时才应该这样做。通常,尽量保持变量范围尽可能小,以提高可维护性。
  • 拥有可变访问控制器类。然后,类可以通过=INDEX('Sheet1'!$A:$E,MATCH(A13,'Sheet1'!$A:$A,0)+1,5) 实现注册访问某些变量。然后其他类可以通过此接口访问变量。

在您的情况下,最好采用第一种(或第二种)方式。

答案 1 :(得分:0)

只需将其作为参数传递给其他函数即可。

foo(int[] array) {//} 

从主

中调用它
foo(array1);  

答案 2 :(得分:0)

有两种方法可以实现这一目标:

  1. 在主方法之外将您的数组声明为类中的字段:

    public class SomeClass {
      private int[] array; 
      ...
      ...
      public static void main(String[] args) {
        array = ....
      }
      ...
    }
    
  2. 将其作为参数传递给其他需要它的方法

答案 3 :(得分:0)

在我的情况下,我的主要方法中有一个ArrayList,如下所示:static ArrayList<MyClass> myclass= new ArrayList<MyClass>();。我从主要方法添加随机值。然后,我需要从另一个类访问ArrayList,因此,方法是在要在其中使用它的类中创建一个构造函数,如下所示:

ArrayList<MyClass> myclass;
    public AnotherClass(ArrayList<MyClass> myclass) {
        this.myclass= myclass;
    }
// the ArrayList used in other methods here

所以我可以在主要使用ArrayList作为参数的情况下创建AnotherClass的对象:AnotherClass ac = new AnotherClass(myClass);