2017-06-08 4 views
1

Ich habe eine eigene Klasse definiert, die eine Wrapper-Klasse-Matrix für ein 2-dimnestional Array implementiert. Mit einer Setter-Methode 'set (int n, int m, double d)' möchte ich den Wert an der Position n (Zeile), m (colum) in d setzen/ändern.Versuchen, eine Setter-Methode für meine Wrapper-Klassenmatrix zu erstellen

public class Matrix { 

double matrix [][]; 
int matrixSize; 

public Matrix(int matrixSize){ 
    this.matrix = new double [matrixSize][matrixSize]; 
} 

public void setMatrixSize(int size){ 
    matrixSize = size; 
} 

public int getMatrixSize(){ 
    return matrixSize; 
} 

public void set(int n, int m, double d){ 
    double matrix [n][m] = d; 
}} 

Ich weiß, dass meine letzte Methode nicht funktioniert, aber ich weiß nicht wirklich, wie der Wert double d an der Array-Matrix an der Position n, m einzustellen.

Wenn einige von Ihnen mir helfen können, wäre ich sehr dankbar.

+0

Die letzte Methode geholfen ist fast in Ordnung, nur die „doppelte“ entfernen. Sie haben den Typ bereits definiert (es ist ein Mitglied)! Was in Ihrem Code nicht funktioniert, ist die 'setMatrixSize'-Methode, da ein Array eine feste Größe hat (Sie ändern das Element" matrixSize "aber das Array bleibt gleich) –

Antwort

1

In Verfahren Satz (für Matrix) Sie definieren eine neue Matrix, die nichts gemein hat mit Matrix aus der Klasse hat, ist es Aufgabe des 2D-Arrays, nicht Array aus der Klasse.

Sie wollen wahrscheinlich, dies zu tun:

public void set(int n, int m, double d){ 
     this.matrix [n][m] = d; 
    } 

Durch die Verwendung von this.property, Sie sagen, Sie verwenden Eigenschaft aus der Klasse und nicht aus dem Verfahren.

Hope it

+0

Danke, es hat funktioniert :) Ich habe es bereits getestet. – beginnerGirl

0

fixieren set Methode wie folgt:

public void set(int n, int m, double d){ 
    this.matrix[n][m] = d; 
} 
+0

Danke, es hat funktioniert :) Ich schon getestet es. – beginnerGirl

Verwandte Themen