使数组可以在方法和类中访问

时间:2012-11-25 05:42:48

标签: java

如何在类和方法中使数组可访问? 现在我有类似的东西

public class Class
{
public int[] array = new int[value];
public static int var;
    public void callArray()
    {            
        for(int x = 0; x < array.length; x++)
            var++;
        for(int x = 0; x < array.length; x++)
        {
            value[x] = var;
            var = 0;
        }
    }

    public void anotherMethod()
    {
    int[] array = new int[var];
         for(int x = 0; x < array.length; x++)
             System.out.println(array[x])
    }
}  
public class AnotherClass extends Class
{
int[] array = new int[var];
    for(int x = 0; x < array.length; x++)
        System.out.println(array[x]);
}

每当我做这样的事情时,我得到一个空指针或数组越界 如何在多个类和方法中提供数组?

3 个答案:

答案 0 :(得分:3)

假设array是该类的成员(实例变量) - 您应该使用它,而不是创建新的本地变量

 int[] array = new int[value];

正在创建一个新的局部变量,并在其上“工作”,而不是处理实例变量。

你真正需要的是:

public void callArray() {
    array = new int[value];
    //^^ note that we do not declare a new variable, and thus we use the instance variable

    for(int x = 0; x < array.length; x++)
        //code
}

答案 1 :(得分:2)

您需要将数组设为字段:

class MyClass {
    int[] array = new int[5];

    public void callArray()
    {
        for(int x = 0; x < array.length; x++)
            //code
    }

    public void anotherMethod()
    {
         for(int x = 0; x < array.length; x++)
             System.out.println(array[x])
    }

答案 2 :(得分:0)

如果您需要从许多不同的类实例中对数组进行进程范围的访问,则可以将其包含在singleton类中。如果您只需要在一个实现“callArray”和“anotherMethod”方法的对象中访问数组,您可以简单地将数组声明为类字段:

public YourClass {
    private int[] array = new int[value];

    public void callArray()
    {
        for(int x = 0; x < array.length; x++)
            //code
    }

    public void anotherMethod()
    {
       for(int x = 0; x < array.length; x++)
          System.out.println(array[x])
    }
}