Hallo Leute ,
Hab hier ein kleines Problem beim Verständnis einer Übungsaufgabe. Zunächst einmal die Aufgabenstellung:
Ich soll eine abstrakte Klasse mit Namen "Figuren3D" erzeugen. In dieser Klasse sollen sich die Attribute "Name" und "Gewicht" befinden, und die Methode "getVolumen". Zudem sollen die Methoden "equals" und "toString" überschrieben werden. Anschließend sollen die Klassen "Quader", "Kugel" und "Pyramide" von "Figuren3D" erben. Die Unterklassen erhalten zudem figurenspezifische Attribute (Länge, Breite, Höhe und Radius) und Konstruktoren.
Nun soll eine Testklasse "TestFiguren3D" geschrieben werden, welche drei verschiedene Figuren erstellt und als Array speichert. Die "equals"-Methode soll abschließend alle Figuren miteinander vergleichen und den Namen der Figur mit dem höchsten Gewicht ausgeben.
Ich poste zunächst mal den Code aller 5 Klassen:
Figuren3D
Quader
Kugel
Pyramide
Ich verstehe nicht, warum in der Klasse "Figuren3D" bei dem Überschreiben der equals-Methode hinter dem
noch ein
Was macht das return false?
Danke schon mal für die Antworten und ich hoffe, dass das Beantworten der Frage nicht zu viel Zeit in anspruch nimmt!
Hab hier ein kleines Problem beim Verständnis einer Übungsaufgabe. Zunächst einmal die Aufgabenstellung:
Ich soll eine abstrakte Klasse mit Namen "Figuren3D" erzeugen. In dieser Klasse sollen sich die Attribute "Name" und "Gewicht" befinden, und die Methode "getVolumen". Zudem sollen die Methoden "equals" und "toString" überschrieben werden. Anschließend sollen die Klassen "Quader", "Kugel" und "Pyramide" von "Figuren3D" erben. Die Unterklassen erhalten zudem figurenspezifische Attribute (Länge, Breite, Höhe und Radius) und Konstruktoren.
Nun soll eine Testklasse "TestFiguren3D" geschrieben werden, welche drei verschiedene Figuren erstellt und als Array speichert. Die "equals"-Methode soll abschließend alle Figuren miteinander vergleichen und den Namen der Figur mit dem höchsten Gewicht ausgeben.
Ich poste zunächst mal den Code aller 5 Klassen:
Figuren3D
Java:
public abstract class Figuren3D{
//Attribute---------------------------------------------------------------------
String name;
double gewicht;
//Methoden----------------------------------------------------------------------
public abstract double getVolumen();
@Override
public boolean equals(Object figur){
if (figur instanceof Figuren3D){
Figuren3D f = (Figuren3D) figur;
return (gewicht == f.gewicht);
}
return false;
}
@Override
public String toString(){
return "Objekt: " + this.name + ", Gewicht: " + this.gewicht + ", Volumen: " + this.getVolumen();
}
}
Quader
Java:
public class Quader extends Figuren3D {
//Attribute---------------------------------------------------------------------
double breite;
double laenge;
double hoehe;
//Methoden----------------------------------------------------------------------
@Override
public double getVolumen(){
return breite * laenge * hoehe;
}
//Konstruktoren-----------------------------------------------------------------
public Quader(){
name = "standard";
breite =
laenge =
hoehe = 1;
gewicht = 1;
}
public Quader(String n, double b, double l, double h, double g){
this.name = n;
this.breite = b;
this.laenge = l;
this.hoehe = h;
this.gewicht = g;
}
}
Kugel
Java:
public class Kugel extends Figuren3D {
//Attribute---------------------------------------------------------------------
double radius;
//Methoden----------------------------------------------------------------------
@Override
public double getVolumen(){
return (4/3) * Math.PI * Math.pow(radius, 3);
}
//Konstruktoren-----------------------------------------------------------------
public Kugel(){
name = "standard";
radius = 1;
gewicht = 1;
}
public Kugel(String n, double r, double g){
this.name = n;
this.radius = r;
this.gewicht = g;
}
}
Pyramide
Java:
public class Pyramide extends Figuren3D {
//Attribute---------------------------------------------------------------------
double breite;
double laenge;
double hoehe;
//Methoden----------------------------------------------------------------------
@Override
public double getVolumen(){
return (1/3) * hoehe * breite * laenge;
}
//Konstruktoren-----------------------------------------------------------------
public Pyramide(){
name = "standard";
breite =
laenge =
hoehe = 1;
gewicht = 1;
}
public Pyramide(String n, double b, double l, double h, double g){
this.name = n;
this.breite = b;
this.laenge = l;
this.hoehe = h;
this.gewicht = g;
}
}
Java:
public class TestFiguren3D {
public static void main(String[] args) {
Figuren3D[] f = new Figuren3D[3];
f[0] = new Quader("Quader_1", 5.5, 6.7, 2.1, 36.2);
f[1] = new Kugel("Kugel_1", 4.5, 66.2);
f[2] = new Pyramide("Pyramide_1", 2.3, 3.7, 6.3, 36.2);
System.out.println(f[0]);
System.out.println(f[1]);
System.out.println(f[2]);
if(f[0].equals(f[1])) {
System.out.println("Figur 1 und 2 sind gleich!");
}
if(f[0].equals(f[2])) {
System.out.println("Figur 1 und 3 sind gleich!");
}
if(f[1].equals(f[2])) {
System.out.println("Figur 2 und 3 sind gleich!");
}
if(!(f[0].equals(f[1]) || f[0].equals(f[2]) || f[1].equals(f[2])))
System.out.println("Alle Figuren haben unterschiedliche Gewichte.");
}
}
Ich verstehe nicht, warum in der Klasse "Figuren3D" bei dem Überschreiben der equals-Methode hinter dem
Java:
return (gewicht == f.gewicht);
Java:
return false;
Was macht das return false?
Danke schon mal für die Antworten und ich hoffe, dass das Beantworten der Frage nicht zu viel Zeit in anspruch nimmt!