2013-07-08 46 views
1

如何制作一个构造函数来设置全局数组的长度?如何调用初始化数组长度的数组构造函数?

我已经尝试了几种方法来做到这一点,没有成功。

实施例:

public Class{ 

    public Class(int length){ 
     double[] array = new double[length]; <- this is not global 

     L = length; 
    } 

    int L; 
    double[] array = new double[L]; <- this does not work 
} 

我需要与由构造确定的长度的阵列。

+0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html –

+0

什么有关声明'双[] array'构造的外侧,然后创建该对象'数组=新double [length];'构造函数内部? –

+2

就像一个边缘的评论:你不应该命名你的类类 –

回答

7

我认为它是如此简单:

public class MyClass{ 
    double[] array; 

    public MyClass(int length){ 
     array = new double[length]; 
    } 
} 

,我也做了代码实际上编译 :)你是缺少一些关键字等

如果你想在您的代码中访问length,使用array.length而不是将其冗余存储在单独的字段中。

同样打电话给你的班级Class是一个不好的选择,即使作为一个例子,因为它与java.lang.Class冲突。

+3

对'java.lang.Class'备注为+1 –

0

声明数组为成员变量。然后在构造函数中初始化它。

public class A{  
    private double[] array;  
    public Class(int length){ 
     array = new double[length]; 
     L = length; 
    }  
} 

你可以用第二种方式初始化它。不过,你需要使用一个固定长度

public class A{  
    private double[] array = new double[100]; // use fixed length 
    public Class(int length){ 
     array = new double[length]; 
     L = length; 
    }  
} 
-1

你可以做到这一点

public class Test { 
double[] array; 

     public Test (int length){ 
      array = new double[length]; <- this is not global 


} 
+0

请更正代码,你从来没有在这里定义过一个'class',并且'Class'作为classname的选择是不正确的,因为它与java.lang冲突。班级! – NINCOMPOOP

+0

@TheNewIdiot谢谢。没意识到。 –

0

我不知道你想实现什么,但为什么你不只是做这种方式:

public class Class{ 
    public Class(int length){ 
     this.array = new double[length]; // <- this is not global 
    } 
    double[] array; 
} 
相关问题