Objekt einer Methode eines anderen Objektes übergeben

P3ngu

Neues Mitglied
Hallo zusammen,

ich habe ein Programm das Matrizen als Objekte speichert und in der Main Methode erstellt und deklariert.
Nun habe ich die Matrix 1 und würde gerne mit dieser die Methode add() aufrufen und den Parameter Matrix 2 übergeben.
Das hab ich in der Main Methode wie folgend gelöst:

m.add(m);

Die Methode add() soll nun die Summe des Inhaltes aus Matrix 1 und Matrix 2 zusammen rechnen und als rückgabe Wert an die MainMethode übergeben.
Problem nun, das Ergebnis besteht immer aus den Summen der Matrix 2 (deren Summe ist immer 5 da nur 5 drinne steht). Ich denke an dieser stelle fehlt mir das Wissen um Matrix 1 direkt anzusprechen. In der add() Methode habe ich versucht die Matrizen mit this.matrix und other.matrix zu differenzieren, jedoch scheint das nicht zu funktionieren...

Hier ist meine Main-Methode:

Java:
public class Matrix {
    private static int m;
    private static int n;
    private double x;
    static double[][] matrix;
    public static void main(String[] args) {
        Matrix m = new Matrix(10,5);
        Matrix m1 = new Matrix(5,5);
        m.setValue(0,0,1.553);
        m1.setValue(0, 0, 5.0);
        System.out.println(m.add(m1));
        
    }
    public Matrix(int m, int n) {
        this.m = m;
        this.n = n;
        matrix = new double[m][n];
        
    }

Hier die Methoden in denen ich meine Daten eingeben, ausgeben und berechnen kann:

Code:
    public static void setValue(int i, int j, double x) {
        
        matrix[i][j] = x;
    }
    public double getValue(int i, int j) {
        return matrix[i][j];
    }
    public double add(Matrix other) {
        
        double temp=0;
        for(int i=0;i<other.m;i++) {
            for(int j=0;j<other.n;j++) {
                temp=temp+other.matrix[i][j];
                System.out.println(temp);
            }
        }
        for(int k=0;k<this.matrix.m;k++) {
            for(int l=0;l<this.matrix.n;l++) {
                temp=temp+other.matrix[k][l];
                System.out.println(temp);
            }
        }
        return temp;
        
    }
    

}

Interessant könnte noch sein, dass wenn ich in der MainMethode m.SetValue durchführe, dann m1.setValue und dann die add Methode mit m.add(m) dann nimmt er trotzdem die zweite Matrix, was übersehe ich?
Anbei noch ein Bild der Ausgabe.
 

Anhänge

  • output.png
    output.png
    39,2 KB · Aufrufe: 0

KonradN

Super-Moderator
Mitarbeiter
Erst einmal hast Du hier keine Instanzvariablen sondern Klassenvariablen:
Java:
    private static int m;
    private static int n;
    static double[][] matrix;

Es gibt somit nur jeweils ein m, n und matrix - egal wie viele Instanzen der Klasse du erstellst. Wenn Du also Instanzvariablen haben willst, dann muss das static weg.

Und in einer Methode wie public double add(Matrix other) { kannst Du aus den Parameter mit other zugreifen und die Instanz, auf der die Methode aufgerufen wurde, mit this.

Somit könntest Du z.B. etwas schreiben wie:
this.matrix[0][0] = other.matrix[0][0];
nur um mal ein Beispiel zu bringen. Setzt aber natürlich voraus, dass matrix nicht mehr static ist!
 

MarvinsDepression

Bekanntes Mitglied
Abgesehen von dem falschen 'static' halte ich deine add()-Methode für unschön, weil zu speziell, gelöst. Sie gibt die Summe aller Eigenwerte zweier Matrizen zurück. Genauso gut könntest du eine Methode sum() erstellen, welche nur die Summe der eigenen Matrix berechnet.
Die add() methode wäre dann sehr übersichtlich:
Java:
public double add(Matrix other) {
    return this.sum() + other.sum();
}
(wobei das this durchaus weggelassen werden kann.)
Der Methodenname add ist ebenfalls nicht glücklich gewählt, weil durch den Aufruf nichts am Inhalt des Objekts geändert wird, die Wortbedeutung dies aber erwarten läßt.
 

KonradN

Super-Moderator
Mitarbeiter
Wobei eine Addition von Matrizen doch nicht so eine Summe ist und das Ergebnis auch kein double ist. Es kommt eine Matrix heraus.

Also vom Ablauf her:
  • Check, dass beide Matrizen gleich groß sind
  • Neue Matrix erstellen mit dieser Größe
  • Nun wird für jede Position in der Ergebnis-Matrix die Felder der beiden anderen Matrix zusammen addiert.

 

KonradN

Super-Moderator
Mitarbeiter
Der Methodenname add ist ebenfalls nicht glücklich gewählt, weil durch den Aufruf nichts am Inhalt des Objekts geändert wird, die Wortbedeutung dies aber erwarten läßt.
Das sehe ich nicht so. Wäre es eine Addition von Matrizen, dann wäre das durchaus ok und genau so ist es ja auch bei anderen Klassen im Framework gelöst z.B. BigDecimal.add verändert das eigentliche Objekt auch nicht sondern addiert und gibt dann eine neue Instanz zurück.
 

Robert Zenz

Top Contributor
Das sehe ich nicht so. Wäre es eine Addition von Matrizen, dann wäre das durchaus ok und genau so ist es ja auch bei anderen Klassen im Framework gelöst z.B. BigDecimal.add verändert das eigentliche Objekt auch nicht sondern addiert und gibt dann eine neue Instanz zurück.
Man sollte an der Stelle einfach mal erwaehnen dass "add" das Verb von "addition" ist. Also wie in "Zwei Zahlen addieren"/"To add two numbers".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
C Bestimmtes Objekt einer ArrayList in einer Methode selektieren Java Basics - Anfänger-Themen 8
N Objekt in Methode einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
T Von einer Methode zurückgegebenes Objekt in einer ArrayList ansprechen Java Basics - Anfänger-Themen 5
D Objekt der Methode einer anderen Klasse zuordnen Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
M Objekt einer Klasse speichert die Veränderung nicht Java Basics - Anfänger-Themen 1
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
L Klassen Objekt aus einer Warteschlange in eine andere übergeben, geht nicht? Java Basics - Anfänger-Themen 6
S Objekt einer Klasse OnClick Java Basics - Anfänger-Themen 5
r4w Eigenschaften aus Objekt einer Liste holen Java Basics - Anfänger-Themen 3
T Objekt-Arrays mit einer Schleife durchlaufen/ausgeben Java Basics - Anfänger-Themen 2
Arif Collections Unkonstruiertes Objekt einer Collection hinzufügen Java Basics - Anfänger-Themen 2
K Objekt einer Klasse weitergeben Java Basics - Anfänger-Themen 1
E Methoden Auf Methoden einer Klasse zugreifen, ohne ein Objekt zu erstellen Java Basics - Anfänger-Themen 2
P Klassen In einer Autoklasse das Objekt Auto mittels Collection Speichern Java Basics - Anfänger-Themen 4
W Objekt einer Unterklasse erstellen Java Basics - Anfänger-Themen 4
F Zugriff auf Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
N Objekt in einer Liste finden? Java Basics - Anfänger-Themen 3
Z Greenfoot Variable in einer Datei und nicht in einem Objekt/World speichern Java Basics - Anfänger-Themen 1
A Greenfoot - Objekt im Vordergrund lassen, bei einer scrollbaren Welt ohne zentrierten Actor Java Basics - Anfänger-Themen 3
E Attribute von einem Objekt einer anderen Klasse ändern Java Basics - Anfänger-Themen 4
X Objekt in einer Klasse aufrufen Java Basics - Anfänger-Themen 13
P Kapselung Variable innerhalb einer inneren Klasse ansprechen ohne ein Objekt erzeugen zu müssen? Java Basics - Anfänger-Themen 6
J OOP Vergebene Objekt Nummer abgleichen falls einer entfernt wird ? Java Basics - Anfänger-Themen 5
K Klassen Objekt mit einem Namen von einer bestimmten Klasse instanziieren Java Basics - Anfänger-Themen 10
B Klassen über Main Klasse in einer anderen Klasse ein Objekt erstellen Java Basics - Anfänger-Themen 5
L Aus einer String Variablen ein Objekt erstellen Java Basics - Anfänger-Themen 14
S OOP Auf ein Objekt von einer anderern Klasse zugreifen Java Basics - Anfänger-Themen 3
N OOP Zugriff auf eine Objekt innerhalb einer Klasse aus statischen Methoden Java Basics - Anfänger-Themen 9
C Ein Objekt in einer Zeile ausgeben Java Basics - Anfänger-Themen 31
L auslesen einer Variablen eines Objekt welches "Eigentum" eines Objektes der selben Klasse ist. Java Basics - Anfänger-Themen 12
I Einzelnes Objekt einer Klasse bekommen Java Basics - Anfänger-Themen 9
D Fehlen einer Referenz auf Objekt Java Basics - Anfänger-Themen 14
E Ein Objekt von zwei möglichen Klassen in einer Variable Java Basics - Anfänger-Themen 5
Z objekt erstellen von canonical name einer klasse Java Basics - Anfänger-Themen 6
V objekt einer Klasse erstellen Java Basics - Anfänger-Themen 21
philipp Auf Objekt einer ArrayList zugreifen Java Basics - Anfänger-Themen 2
G Methodenaufruf über ein Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
M Der Umgang mit Iterator - Wie ein Objekt aus einer ArrayList Java Basics - Anfänger-Themen 2
P Prüfen, ob Objekt von einer Klasse ist Java Basics - Anfänger-Themen 3
B Sortieren von Objekt Arrays nach einer Instanz Java Basics - Anfänger-Themen 8
C Objekt soll sich selber einer Variablen zuweisen. Java Basics - Anfänger-Themen 6
G Objekt öffnen von einer anderen Klasse öffnen Java Basics - Anfänger-Themen 6
G objekt aus einer .class datei Java Basics - Anfänger-Themen 16
G Problem bei der Angabe von Attributen in einer Objekt-Klasse Java Basics - Anfänger-Themen 3
J Attribut vom Objekt einer eigenen Klasse setzen Java Basics - Anfänger-Themen 6
F Aktualisieren einer Liste von einem entfernten Objekt aus. Java Basics - Anfänger-Themen 11
S Variabler Name für ein Objekt einer Klasse? Java Basics - Anfänger-Themen 10
M objekt (linkedList) zugriff aus einer anderen klasse Java Basics - Anfänger-Themen 3
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
melaniemueller Fernseher als Objekt Java Basics - Anfänger-Themen 9
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
S Aufzurufendes Objekt Java Basics - Anfänger-Themen 3
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56

Ähnliche Java Themen

Neue Themen


Oben