设置数组

Setting an array

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

这是 getter 和 setter。

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

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

这是Movimiento(运动)

的属性
private double monto;
private int tipo;
private String operacion;

这是昆塔

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;
    }

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

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

cuentas[ncuenta].setMov(new Movimiento(monto,tipo,operacion))[0];

方法 setMove(Movimiento[]) int 类型 Cuenta 不适用于参数 (Movimiento) 我被困在这个问题上,找不到解决方案。

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

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

像这样更新您的 setMov()

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

并且您的 getMov() 也应该指定一个位置以从您的 mov 数组

中检索单个 Movimiento 对象
public Movimiento getMov(int position) {
    return this.mov[position];
}

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

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

两大问题。

  1. cuentas[ncuenta].setMov(new Movimiento(monto,tipo,operacion)) 从根本上来说是错误的,因为您将 Movimiento 的一个实例传递给 setMov(),它期望 Movimiento[] 的一个实例。

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

看来你混淆了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