2 votes

Définition d'un tableau

J'ai un problème avec les setters et les tableaux en java, je n'arrive pas à les régler correctement.

Ce sont les getters et setters.

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

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

Ce sont les attributs de Movimiento (Mouvement)

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

C'est Cuenta

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

Peut-être que je fais quelque chose de mal, j'ai essayé de le configurer de cette façon et cela (et d'autres façons) ne fonctionne pas.

Je veux placer un objet à la position [0].

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

La méthode setMove(Movimiento[]) int le type Cuenta n'est pas applicable pour les arguments ( Movimiento ) Je suis bloqué et je ne trouve pas de solution à ce problème.

0voto

Kamsi Ibeziako Points 61

Je comprends ce que vous essayez de faire. Vous voulez définir un seul Movimiento à une position spécifique dans votre Movimiento[] mov et de le récupérer, mais actuellement ce que vous avez dans setMov() met juste à jour le mov avec un nouvel objet tableau.

Mettez à jour votre setMov() comme ça :

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

et votre getMov() devrait également avoir une position spécifiée pour récupérer un seul Movimiento Objet de votre mov tableau

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

Vous pouvez maintenant placer et récupérer des éléments facilement.

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

0voto

Romeo Sierra Points 886

Deux problèmes majeurs.

  1. cuentas[ncuenta].setMov(new Movimiento(monto,tipo,operacion)) est fondamentalement erronée, car vous passez une instance de Movimiento à setMov() qui attend une instance de Movimiento[] .

  2. cuentas[ncuenta].setMov(new Movimiento(monto,tipo,operacion)) ne retournera pas une référence de tableau. Parce que setMov() est void .

Il semble que vous ayez confondu le concept de régleur. Rappelez-vous setMov() sera définir uniquement une référence de tableau à une variable. Vous ne pouvez pas définir les indices du tableau avec cela.

Comment le corriger ? Nous ne pouvons rien dire à ce sujet, car ni le scénario, ni votre problème ne sont clairs. Par exemple, vous n'avez pas mentionné ce que ce cuentas[ncuenta] est à propos de. En supposant que cuentas[ncuenta] fait référence à une instance de Cuenta et que vous avez besoin d'assigner une valeur à un index d'un tableau, je vous suggérerais quelque chose comme suit.

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.

NOTE DE NOUVEAU Avant de l'essayer, lisez ce qui concerne les récupérateurs et les régleurs en Java dans ce document Réponse SO .

-1voto

Vous devez recevoir un tableau de Movimento[], mais vous n'avez pas initialisé un tableau de Movimiento

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X