Création deux objets de même type
Bonjour,
Je souhaite créer deux objets de même type, initialisés tous les deux par un troisième objet de même type en paramètre. Voici le code de mon constructeur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| private SupplyChain sc;
private SupplyChain sc2;
private int demand;
private int fluct_demand;
public SimulatedScenario(SupplyChain sc)
{
this.sc = new SupplyChain();
this.sc2 = new SupplyChain();
this.sc = sc;
this.sc2 = sc;
demand = (Integer) sc.getSegmentoMercato().getDomanda();
} |
Ensuite, je souhaite modifier un attribut par l'appel d'un "setter" sur l'un des deux objets.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public void computeVarOptimumMarket(int market_state, int[] coalition){
...
//compute current optimum point
current_optimum = new OttimoCosti(sc, coalition);
current_optimum.calcolaOttimo();
current_optimum.calcolaOttimiTotali();
//sc2 = sc with new demand
sc2 = sc;
sc2.getSegmentoMercato().setDomanda(fluct_demand);
//compute new_optimum point for new demand
new_optimum = new OttimoCosti(sc2, coalition);
new_optimum.calcolaOttimo();
new_optimum.calcolaOttimiTotali();
...
} |
Or, je me rends compte que la valeur en question est aussi modifiée sur l'autre objet de même type, chose que je ne veux pas.
J'ai remarqué que les ID de mes deux objets changeaient lorsque que j'écris
Code:
1 2
| this.sc = sc;
this.sc2 = sc; |
et prennent tous deux le même ID que l'objet en paramètre.
Comment puis-je contourner ce problème ? L'objectif étant s'initialiser les deux objets sc et sc2 avec les mêmes valeurs que l'objet en paramètre pour ensuite changer certaines valeurs de l'objet sc2 sans modifier celles de sc.
Cordialement,
Tehko