【问题标题】:storing passed variables into array automatically - java将传递的变量自动存储到数组中 - java
【发布时间】:2014-06-07 12:02:45
【问题描述】:

我无法将从一个类传递的变量存储到另一个类的数组中。

我将一个已在 A 类中扫描的双精度传递给 B 类,我希望将双精度存储在双精度数组中,只要类 A 中的扫描仪@hasNext() .

我在B 类中的代码类似于这样:

// I can't seem to get the passed doubles to be stored as individual elements of the array

public class B {

public final static int MAX_SIZE = 200;

public int i;
public double passedOne;

public void store() {


    double[] storedOneVars = storedOneVars[MAX_SIZE]; // create a system to store variables in the array

    for (i = 0; i < MAX_SIZE; i++) {
        storedOneVars[i] = passedOne;
    }

    for (double s : storedOneVars) {
        System.out.println(s);
    }



}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    new NumberRow().store();
}

}

我愿意接受建议:D

【问题讨论】:

  • 代码的意义何在?
  • @ErikAllik 我认为 OP 正在学习如何传递变量。我认为这就是重点
  • 变量不通过;值是。
  • 对不起pass by reference,但你知道我的意思:)
  • 对不起,我缺乏编程术语,对此仍然很陌生,重点是在我的 B 类中构建一种“数据库”(双数组),以便我以后可以检索它,从下一节课。

标签: java arrays class


【解决方案1】:

我的 Java 有点生疏了,但我看不出你在哪里将变量引用传递给你的类 B。要添加对值的引用,您可以创建一个不包含参数的构造函数,或者将参数传递给您的 store() 方法。

另外,你正在错误地实例化你的数组。

double[] storedOneVars = storedOneVars[MAX_SIZE];

应该是

double[] storedOneVars = new double[MAX_SIZE];

您也在实例化NumberRow,但没有分配给引用变量。更糟糕的是没有NumberRow 类。有一个班级B。所以应该是这样的:

B myB = new B();

这是一个例子:

class B {


    private double[] myDoubleArray;

    public double[] getMyDoubleArray() {
        return myDoubleArray;
    }


    public void setMyDoubleArray(double[] myDoubleArray) {
        this.myDoubleArray = myDoubleArray;
    }

    public B(double[] dArray){

        setMyDoubleArray(dArray);

    }


    public void store() {

        for (double s : getMyDoubleArray()) {
            System.out.println(s);
        }   
    }
}

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        double[] myd = new double[]{1,2,3};

        B myB = new B(myd);
        myB.store();
    }

}

【讨论】:

  • 对不起,我有点草率,原来我的班级名称是 NumberRow。但是,为了简化我的问题,我只是将其称为 B 类,而忘记修改我的代码的某些部分。我将变量传递给这个 B 类,并在我的 A 类中使用:
  • B b = new B(); b.columnOneNewVar = doubleScanner.nextDouble();
  • 另外,我传递的不是数组,而是 B 类,一次一个双精度
  • 我想我已经给了你足够的支持。你应该能够弄清楚其余的。这是非常基本的java编程。
  • 老实说不是真的,您的代码似乎没有一次将一个变量的单个(传递的)值添加到数组中。这是我试图解决的问题。虽然我很欣赏你试图帮助我的好意。
猜你喜欢
  • 2011-06-21
  • 2013-11-22
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-05
相关资源
最近更新 更多