Hey,
Ich hab ne Aufgabe mit Interface, GenericList und muss die Methoden toString, add, size und sort implementieren. Nur für die sort-Methode die mir noch fehlt, muss ich noch die Methode smallerThan() implementieren, bei der ich aber nicht vorwärts komme. Ich muss so wie ich das verstanden habe auf GeometricObjects casten, so dass die Ergebnisse der Beiden Methoden Rectangle und Triangle miteinander verglichen werden können, so dass ich die Methode sort schreiben kann.
Ich komm aber einfach nicht weiter, hat vielleicht jemand einen Tip für mich?
Interface Comparable:
Hier muss ich die smallerThan Methode implementieren:
Rectangle:
Triangle:
Ich hab ne Aufgabe mit Interface, GenericList und muss die Methoden toString, add, size und sort implementieren. Nur für die sort-Methode die mir noch fehlt, muss ich noch die Methode smallerThan() implementieren, bei der ich aber nicht vorwärts komme. Ich muss so wie ich das verstanden habe auf GeometricObjects casten, so dass die Ergebnisse der Beiden Methoden Rectangle und Triangle miteinander verglichen werden können, so dass ich die Methode sort schreiben kann.
Ich komm aber einfach nicht weiter, hat vielleicht jemand einen Tip für mich?
Java:
package u6a3;
public class ListUtils implements IListUtils {
public String toString(GenericList list) {
if (list == null) {
return "null";
} else {
StringBuffer buf = new StringBuffer();
buf.append(list.value).append(", ").append(toString(list.next));
return buf.toString();
}
}
public GenericList add(GenericList list, Object value) {
return new GenericList(value, list);
}
public int size(GenericList list) {
if (list == null) {
return 0;
} else {
return 1 + size(list.next);
}
}
public GenericList sort(GenericList list) {
// muss ich noch machen
}
}
Interface Comparable:
Java:
package u6a3;
/**
* Interface for objects which can be compared with each other
*/
public interface Comparable {
/**
* Operator <
*
* @param rhs the right-hand side of the operation
* @return true iff this < rhs; false otherwise
*/
public boolean smallerThan(Comparable rhs);
}
Hier muss ich die smallerThan Methode implementieren:
Java:
package u6a3;
/**
* abstract class of geometric objects
*/
public abstract class GeometricObject implements Comparable {
public abstract int area();
public boolean smallerThan(Comparable rhs)
{
GeometricObject GeoObj = ((GeometricObject) rhs); // wird wohl nicht der richtige Ansatz sein?
}
}
Rectangle:
Java:
package u6a3;
public class Rectangle extends GeometricObject {
private int a;
private int b;
public String toString()
{
return String.format("Rectangle(%d,%d)", a, b);
}
public int area()
{
return a * b;
}
public Rectangle(int base, int height)
{
this.a = base;
this.b = height;
}
}
Triangle:
Java:
package u6a3;
public class Triangle extends GeometricObject {
private int base;
private int height;
public String toString()
{
return String.format("Triangle(%d,%d)", base, height);
}
public int area()
{
int product = base * height;
return product / 2;
}
public Triangle(int base, int height)
{
this.base = base;
this.height = height;
}
}
Zuletzt bearbeitet von einem Moderator: