设置一个数组

时间:2018-06-06 01:25:19

标签: java arrays setter

我的java中的setter和数组有问题,我无法正确设置。

这是吸气剂和制定者。

fuzzylite/fuzzylite/fl/

这是public Movimiento[] getMov() { return mov; } public void setMov(Movimiento[] mov) { this.mov = mov; } (移动)

的属性
Movimiento

这是Cuenta

private double monto;
private int tipo;
private String operacion;

也许我做错了什么,我试着像这样设置它(以及其他方式)不起作用。

我想将对象设置为位置[0]

public class Cuenta {
    final static int MAXC = 5;
    final static int MAXmov = 10;
    private double monto = 0;
    private Movimiento mov[] = new Movimiento [MAXmov];
    private int ncuenta[] = new int [MAXC];
    private Cliente clientes[] = new Cliente[MAXC];

    public Cuenta(Cliente[] clientes) {
        this.clientes = clientes;
    }

    public double getMonto() {
        return monto;
    }


    public void setMonto(double monto) {
        this.monto = monto;
    }

    public Movimiento[] getMov() {
        return mov;
    }

    public void setMov(Movimiento[] mov) {
        this.mov = mov;
    }

cuentas[ncuenta].setMov(new Movimiento(monto,tipo,operacion))[0]; 类型的方法setMove(Movimiento[])不适用于参数(Cuenta) 我坚持这个,我无法找到解决方案。

3 个答案:

答案 0 :(得分:0)

我明白你要做什么。您希望将单个Movimiento对象设置为Movimiento[] mov数组中的特定位置并进行检索,但目前您在setMov()中所拥有的只更新mov变量新的数组对象。

像这样更新你的setMov()

public void setMov(Movimiento mov, int position) {
    this.mov[position] = mov;
}

并且您的getMov()也应该指定一个位置,以从Movimiento数组中检索单个mov对象

public Movimiento getMov(int position) {
    return this.mov[position];
}

现在您可以轻松设置和检索项目。

cuentas[ncuenta].setMov(new Movimento(mono,tipo, operacion), position);
cuentas[ncuenta].getMov(position);

答案 1 :(得分:0)

两个主要问题。

  1. cuentas[ncuenta].setMov(new Movimiento(monto,tipo,operacion))从根本上说是错误的,因为您要将Movimiento的实例传递给setMov(),这需要Movimiento[]的实例。

  2. cuentas[ncuenta].setMov(new Movimiento(monto,tipo,operacion))不会返回数组引用。因为setMov()void

  3. 好像你已经混淆了setter的概念。请记住setMov() 仅将数组引用 设置为变量。你不能用它设置数组的索引。

    如何纠正?我们无法真正说出任何相关信息,因为情景和问题都不清楚。例如,你没有提到这个cuentas[ncuenta]是什么。假设cuentas[ncuenta]引用Cuenta的实例并且您需要为数组的索引赋值,我建议如下。

    cuentas[ncuenta].setMov(new Movimiento[10]); // A new array of type Movimiento
    cuentas[ncuenta].getMov()[0] = new Movimiento(monto,tipo,operacion); // Extract the reference of 0th index of the array and assign the value needed.
    
    在实际尝试此操作之前

    请注意,请在此SO answer中阅读Java中的getter和setter。

答案 2 :(得分:-1)

你必须收到一个Movimento []数组,但你没有初始化一个Movimiento数组