Comment creer un type puis l'utiliser dans une méthode ?
khaled001
Messages postés156Date d'inscriptionmardi 19 août 2008StatutMembreDernière intervention 8 août 2016
-
19 mai 2012 à 19:09
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 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
A voir également:
Comment creer un type puis l'utiliser dans une méthode ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 ..."