SS19, 12.3 (Speicher-)Darstellung von Graphen

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

SS19, 12.3 (Speicher-)Darstellung von Graphen
Hallo zusammen,

im oeffentlichen Testfall (pubTest__AbstractGraphWithOps__check_intestines…()) zur Teilaufgabe a) steht, dass die Sichtbarkeit aller Methoden private sein muss, mit Ausnahme der zu implementierenden:

Method[] methods = getDeclaredMethods(clazz);
		assertTrue(clazz.getName() + "hat falsche Anzahl an Methoden.", methods.length >= 4);
		for (Method method : methods) {
			if (method.getName().equals("isUndirected")) {
				assertTrue(method.getName() + " - Methode: Sichtbarkeit ist nicht >public<", Modifier.isPublic(method.getModifiers()));
				(...)
			} else if (method.getName().equals("isTree")) {
				assertTrue(method.getName() + " - Methode: Sichtbarkeit ist nicht >public<", Modifier.isPublic(method.getModifiers()));
				(...)
			} else if (method.getName().equals("dfsPreOrder")) {
				assertTrue(method.getName() + " - Methode: Sichtbarkeit ist nicht >public<", Modifier.isPublic(method.getModifiers()));
				(...)
			} else if (method.getName().equals("bfsPreOrder")) {
				assertTrue(method.getName() + " - Methode: Sichtbarkeit ist nicht >public<", Modifier.isPublic(method.getModifiers()));
				(...)
			} else {
				assertTrue(method.getName() + " - Methode: Sichtbarkeit ist nicht >private<", Modifier.isPrivate(method.getModifiers()));
			}
		}
}

In der vorgegebenen, abstrakten Klasse AbstractGraph steht aber, dass addEdge() und hasEdge() als Sichtbarkeit public haben soll:

public abstract class AbstractGraph {
(...)
public abstract void addEdge(int fromNode, int toNode);
public abstract boolean hasEdge(int fromNode, int toNode);

Aus diesem Grund schlaegt bei mir der Testfall fehl. Ist das ein Fehler, oder uebersehe ich hier gerade etwas?


Der else-Fall bezieht sich auf private Hilfsmethoden glaube ich. Nicht auf hasEdge und addEdge. Abstrakte Methoden die noch nicht implementiert werden können einfach durchgereicht werden

1 „Gefällt mir“

Hey GrumpyK1wi,

vielen Dank fuer deine Antwort. Das hatte ich ausprobiert, allerdings fehlten die Methoden noch in den zu implementierenden Klassen. Diese existieren nun aber.
Jetzt habe ich die beiden abstrakten Klassenmethoden in AbstractGraphsWithOps entfernt und der Test ist zufrieden.

Das habe ich so auch angenommen :wink:

Herzlichen Dank fuer deine schnelle Hilfe.