Hallo!
wie kann ich mehrere Attribute einer Klasse (die Comparable implementiert) miteinander vergleichen?
beispielsweise möchte ich von 2 Objekten jeweils dieselben attribute gewicht und anschließend am besten über dieselbe methode die attribute größe miteinander vergleichen.
(Wie) geht das?
Ich müsste momentan für jedes Attribut das vergleichbar sein soll eine Methode schreiben.
Da muss es doch einen besseren weg geben, oder?
zum Code:
Ich habe eine Klasse Animal erstellt, die als attribute name, alter und größe hat. Über den Konstruktor werden dann die entsprechenden infos initialisiert.
Die Methode compareTo(Animal o) soll nun ein objekt vergleichen können.
Ich danke euch für eure hilfe
Lg
wie kann ich mehrere Attribute einer Klasse (die Comparable implementiert) miteinander vergleichen?
beispielsweise möchte ich von 2 Objekten jeweils dieselben attribute gewicht und anschließend am besten über dieselbe methode die attribute größe miteinander vergleichen.
(Wie) geht das?
Ich müsste momentan für jedes Attribut das vergleichbar sein soll eine Methode schreiben.
Da muss es doch einen besseren weg geben, oder?
zum Code:
Ich habe eine Klasse Animal erstellt, die als attribute name, alter und größe hat. Über den Konstruktor werden dann die entsprechenden infos initialisiert.
Die Methode compareTo(Animal o) soll nun ein objekt vergleichen können.
Java:
public class Animal implements Comparable<Animal> {
private String _name;
private double _gewicht;
private int _alter;
public Animal(String name, double gewicht, int alter) {
_name = name;
_gewicht = gewicht;
_alter = alter;
}
@Override
public int compareTo(Animal o) {
return Double.compare(this._gewicht, o._gewicht);
}
public int compareAlter(Animal o) {
return Integer.compare(this._alter, o._alter);
}
public String getName() {return _name; }
public double getGewicht() {return _gewicht;}
public int getAlter() {return _alter;}
}
Java:
public class Main {
public static void main(String[] args) {
Animal dog = new Animal("Dog", 1.99, 9); //name, gewicht, alter
Animal cat = new Animal("Cat", 3.45, 10);
Animal lama = new Animal("LAma", 120.45, 18);
System.out.println(dog.compareTo(cat));
System.out.println(dog.compareAlter(cat));
// so fände ich es besser, ich weiß jedoch nicht wie das
//implementiert werden soll.:
// dog.alter.compareTo(cat.alter);
}
}
Ich danke euch für eure hilfe
Lg