Bonjour, je débute en Java et j'aimerais savoir s'il est possible de réassigner l'objet qu'une méthode utilise. Je m'explique:

Dans le cadre de mes études, j'essaye de réaliser un logiciel permettant des calculs matriciels simple avec de très grandes matrices. Je pars d'une classe Matrice abstraite qui comporte, entre autres, une méthode abstraite Set (qui prend en attribut deux entiers, i et j, ainsi qu'un double d et change le coefficient (i,j) en le remplaçant par d).

Mon problème provient du fait que certaines classes héritant de Matrice stockent leur composantes différemment. Par exemple, pour une matrice diagonale je les stocke sous la forme d'un tableau (double M []). Je garde ainsi uniquement les coefficients diagonaux, les autres étant systématiquement nuls.

Seulement voila, vu la structure de l'implémentation de ma matrice diagonale il m'est impossible de changer un coefficient qui n'est pas sur la diagonale!

l'idée qu'il m'est venu est la suivante, mais elle n'a pas fonctionné:

public void Set(int i, int j, double d){
if(i==j){
this.M [i-1]=d;//pas de problème ici
}
else{
Matrice A = new Matrice_Normale(this.nblignes,this.nbcolonnes);//créé une matrice classique sous forme d'un tableau à 2 dimensions (double M_N [] [])
this.Copy(A);//fonction recopiant les coefficients de la matrice courante dans A
this = A;//c'est cette opération que je n'ai pas réussi à réaliser
}



}


Merci d'avance pour votre aide