将双值数组从一个java类传递到另一个java类
我有一个Java类文件,其中包含我想在另一个Java类文件中使用的双值数组。这是我的代码的简化版本: File1.java将双值数组从一个java类传递到另一个java类,java,Java,我有一个Java类文件,其中包含我想在另一个Java类文件中使用的双值数组。这是我的代码的简化版本: File1.java public class File1.java{ //code public void compute { double[] vectorX_U = {0.1, 0.2, 0.5} } //i tried this method to pass but it said vectorX_U cannot be resolved to a variable pu
public class File1.java{
//code
public void compute
{
double[] vectorX_U = {0.1, 0.2, 0.5}
}
//i tried this method to pass but it said vectorX_U cannot be resolved to a variable
public Double[] getvectorX_U()
{
return vectorX_U;
}
public class File1{ // no .java here!
double[] vectorX_U;
public void compute
{
vectorX_U = {0.1, 0.2, 0.5}
}
public Double[] getvectorX_U()
{
return vectorX_U; // now it will find the instance variable
}
}
File2.java
//i attempt to use the array
public void computethis
{
File1 td = new File1();
System.out.println(td.getvectorX_U());
}
我能在如何实现这一点上得到一些帮助吗?谢谢 您的文件1充满了错误 基本上(除了编译错误),您需要将double数组作为实例变量 现在,它是compute方法中的一个局部变量,您的get方法无法访问它 File1.java
public class File1.java{
//code
public void compute
{
double[] vectorX_U = {0.1, 0.2, 0.5}
}
//i tried this method to pass but it said vectorX_U cannot be resolved to a variable
public Double[] getvectorX_U()
{
return vectorX_U;
}
public class File1{ // no .java here!
double[] vectorX_U;
public void compute
{
vectorX_U = {0.1, 0.2, 0.5}
}
public Double[] getvectorX_U()
{
return vectorX_U; // now it will find the instance variable
}
}
编辑:
不过,在调用getvectorX_之前,您需要调用compute方法。
如果不这样做,数组将不会初始化,getter将返回null。基本上,vectorxu变量的作用域在compute方法内。因此,没有其他方法可以访问vectorX_变量。因此,它应该是一个全局变量。如果您不想更改数组值,并且所有类都可以将其用作“全局变量”,则可以进行设置
public class File1.java{
public static final double[] VECTORX_U = {0.1, 0.2, 0.5};
............
}
如果要更改它,则实例中的每个this变量都是相同的
public class File1.java{
static double[] vectorX_U = {0.1, 0.2, 0.5};
............
}
该类的每个实例中的if变量都有一个特殊值
public class File1.java{
double[] vectorX_U = {0.1, 0.2, 0.5};
............
}
对于第一个和第二个,您可以使用File1.variable;第三个,您需要创建此类的实例,然后您可以使用它您需要在类级别定义
vectorxu
,而不是在compute
方法中定义localy,该方法应该是一个属性,而不是在您的方法中Java中没有全局变量,您可能想将其改为“实例变量”。@Stultuske我的想法是向所有方法显示变量。实例变量没有这种意义,因为我们可以在方法内部创建实例变量,就像最初在这里所做的那样。但global意味着它是实例变量,但它是在方法外部定义的。“因为我们可以在方法内部创建实例变量”。。。不,我们不能。如果我们在一个方法中创建它,它不是一个实例变量,而是一个局部变量。您所描述的是一个实例变量。谢谢,但当我试图在文件2中使用“td.compute().getvectorX_();”输出它时,出现了一个语法错误“无法在原语类型void上调用getvectorX_()”。知道为什么吗?首先在构造函数中使用compute方法,然后调用td.getVectorX_()@Cael not td.compute().getvectorX_();,但是td.compute();td.getvectorX_();您不能将这些链接起来,因为compute不会返回任何内容,并且您正在尝试对compute的(不存在的)结果运行getter。