Comment creer un type puis l'utiliser dans une méthode ?

khaled001 Messages postés 156 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 8 août 2016 - 19 mai 2012 à 19:09
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 19 mai 2012 à 19:51
Salut

Voila je cherche a creer une classe (un type) Matrix puis l'utiliser dans la methode d'une autre classe pourvez vous m'aider

voila ce que j'ai essayé de faire meis j'ai un probleme :

public class Matrix {
     private final int[][] data;

     public Matrix(int[][] data) {
       this.data = data; 
      }


public class testMatrice { 

  public Matrix[][] addMatrice(Matrix[][] mat1, Matrix[][] mat2) {
Matrix m1[][], m2[][];


Matrix[][] som = null;

m1 = new Matrix[mat1.length][mat1[0].length];
m2 = new Matrix[mat2.length][mat2[0].length];
m1 = mat1;
m2 = mat2;


som = new Matrix[m1.length][m1[0].length];
for (int i = 0; i < m1.length; i++)
for (int j = 0; j < m1[0].length; j++)
som[i][j] = m1[i][j] + m2[i][j];


return som;
}


}


j'ai un probleme au niveau de la 18eme ligne cette ligne : m1[i][j] + m2[i][j]; est soulignée en rouge dans mon editeur eclipse et le message d'erreur est :

the operator "+" is undefined for the argument type Matrix



Cordialement

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
19 mai 2012 à 19:51
Salut,


Java ne supporte pas ce que tu cherches à faire et la redef d'opérateur n'étant pas possible, tu ne pourras pas additionner, soustraire, multiplier, diviser... deux objets.
Cela dit au plus simple tu peux passer par des méthodes genre:

public class Matrix {
     // ...
     public void sum(Matrix a, Matrix b) {
       // ta somme
     }
}


Ensuite il te reste à changer ta ligne :

som[i][j] = m1[i][j] + m2[i][j];

Par:

som[i][j].sum(m1[i][j], m2[i][j]);



Il va surement falloir que tu adaptes mais bon le principe est là.

-----

"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Rejoignez-nous