Hallo zusammen,
ich habe folgendes Problem, bei dem ich nur die letzte Methode nicht nachvollziehen kann. Folgende Situation: Ein Graph besitzt Knoten und Kanten.
Die Klasse Knoten sieht so aus(Konstruktor, Attribute und sonstiges lasse ich zur Übersichlichkeit weg):
Eine Kante e wird als Parameter übergeben und der ArrayList (der Anzahl an verbundenen Kanten eines Knotens) übergeben. Der Knoten besitzt also eine Kante mehr.
Die Klasse Kante:
Mit this als Parameter wird das derzeitige Objekt der Klasse repräsentiert. In diesem Fall wird also eine Kante übergeben. Diese wird zur ArrayListe der Knoten startNode und endNode hinzugefügt. Bis hier hin glaube ich alles verstanden zu haben.
In der Klasse Graph habe ich nun folgende Methode:
Wie kann ich mir das nun erklären? Kann das zu keinem sinnvollen Zusammenhang bringen.
Zusatzfrage: Kann man in solchen Fällen die Methoden ersetzten? Sprich kann man (zum Verständnis) schreiben: edge.this.startNode.addIncidentEdge(this). und diese Methode wiederum ersetzen zu: edge.this.startNode.this.incidentEdges.add(e) ?
Ich bedanke mich mal im Voraus. Wäre über jede Hilfe dankbar!
ich habe folgendes Problem, bei dem ich nur die letzte Methode nicht nachvollziehen kann. Folgende Situation: Ein Graph besitzt Knoten und Kanten.
Die Klasse Knoten sieht so aus(Konstruktor, Attribute und sonstiges lasse ich zur Übersichlichkeit weg):
Code:
public class Node {
//Kanten-Attribute
private ArrayList<Edge> incidentEdges;
//Konstruktor
public void addIncidentEdges(Edge e) {
this.incidentEdges.add(e)
}
}
Eine Kante e wird als Parameter übergeben und der ArrayList (der Anzahl an verbundenen Kanten eines Knotens) übergeben. Der Knoten besitzt also eine Kante mehr.
Die Klasse Kante:
Code:
public class Edge {
//Attribute + Konstruktor
private Node startNode;
private Node endNode;
public void addEdgeToNodes() {
this.startNode.addIncidentEdge(this);
this.endNode.addIncidentEdge(this);
}
}
Mit this als Parameter wird das derzeitige Objekt der Klasse repräsentiert. In diesem Fall wird also eine Kante übergeben. Diese wird zur ArrayListe der Knoten startNode und endNode hinzugefügt. Bis hier hin glaube ich alles verstanden zu haben.
In der Klasse Graph habe ich nun folgende Methode:
Code:
public class Graph {
//Attribute + Konstruktor
for (Edge edge: edges) {
edge.addEdgeToNodes();
}
}
Wie kann ich mir das nun erklären? Kann das zu keinem sinnvollen Zusammenhang bringen.
Zusatzfrage: Kann man in solchen Fällen die Methoden ersetzten? Sprich kann man (zum Verständnis) schreiben: edge.this.startNode.addIncidentEdge(this). und diese Methode wiederum ersetzen zu: edge.this.startNode.this.incidentEdges.add(e) ?
Ich bedanke mich mal im Voraus. Wäre über jede Hilfe dankbar!