die einzelnen Attribute einzeln vergleichen

Status
Nicht offen für weitere Antworten.

babuschka

Top Contributor
Hallo Community,
wie kann ich jetzt die einzelnen Attributen einzeln vergleichen?

das habe ich bis jetzt programmiert:
Java:
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Person p1 = new Person("Mueller", "Hans", 22);
        Person p2 = new Person("Mueller", "Hans", 22);
        p1.istGleich(p2);
        
        p1.drucke();
        p2.drucke();

        System.out.println(p1 == p2);

    //p1==p2 ist false. Sie haben zwar den gleichen Inhalt haben aber Sie befinden
    //sich nicht in der selben Referenz!!!
    }

    class Objekte {
    }
}

class Person {

    String nachname;
    String vorname;
    int alter;

    Person(String vorname, String nachname, int alter) {

        this.vorname = vorname;
        this.nachname = nachname;
        this.alter = alter;

    }

    public void drucke() {
        System.out.println("Nachname: " + nachname + " Vorname" + vorname + " Alter " + alter);
    }




    public static boolean istGleich(Person personObjekt) {               //Uebung4_4
        boolean stimmtnicht=false;
        
        if(?????){   <<----
        }
        return stimmtnicht;
        

    }
}
 
Zuletzt bearbeitet von einem Moderator:

venomicious

Mitglied
strings vergleichst du mit der methode compareTo und das alter kannst du mit dem vergleichsoperator == überprüfen.
 
Zuletzt bearbeitet:

hdi

Top Contributor
Kommt auf den Datentyp des Attributes an. Primitve Typen kann man mit == vergleichen, Objekte mit equals(). Das ist für alle Klassen der API implementiert. Für eigene Klassen musst du die equals()-Methode überschreiben, und sinnig implementieren. Also nur, wenn du eben nicht einzelne Attribute vergleichen willst, sondern einfach wissen willst ob 2 Personen gleich sind. zB:

Java:
class Person {

   //...

public boolean equals(Object o){
     if(!(o instanceof Person)){
         return false;
     }
     return ((Person)o).vorname.equals(this.vorname) && (Person)o).nachname.equals(this.nachname) && (Person)o).alter == this.alter);
}
 

babuschka

Top Contributor
ja aber was vergleichen? ich meine wie was kommt vor dem Punkt und in die Klammer rein?

bsp:

?.equals(?)
 

KrokoDiehl

Top Contributor
Du musst doch festlegen, was die Gleichheit zweier Personen ausmacht. Genügt der gleiche Nachname, genügt Gleichheit in Vor- und Nachname ... oder oder oder.

Mit
Code:
equals()
(sofern noch nicht überschrieben) kannst du herausfinden, ob es die gleichen Objekte sind, wie Metacoder bereits gesagt hat. In dem Fall sind sie auf jeden Fall gleich.
Wenn du aber inhaltlich vergleichen willst, ob zwei verschiedene(!) Objekte die gleiche Person beschreiben, musst du ihre Attribute vergleichen. Etwa derart:
Java:
if ( person1.getVorname().compareTo( person2.getVorname() ) == 0 &&
     person1.getNachname().compareTo( person2.getNachname() ) == 0 &&
     person1.getAlter() == person2.getAlter() )
{
    // beide gleich
}
else
{
    // ungleich
}
 

Metacoder

Mitglied
Mit
Code:
equals()
(sofern noch nicht überschrieben) kannst du herausfinden, ob es die gleichen Objekte sind, wie Metacoder bereits gesagt hat. In dem Fall sind sie auf jeden Fall gleich.[/code]

Ist equals nicht überschrieben, sind sie auf jeden Fall ungleich!
Es handelt sich um zwei unterschiedliche Instanzen der Klasse Person (personInstanz1 und personInstanz2).
Wird equals überschrieben und darin die Felder verglichen, die die logische Identität der Instanz ausmachen (z.B. Vorname, Nachname),
dann kann equals sinnvoll angewendet werden!

Und nicht vergessen hashCode auch zu überschreiben (z.B. wenn die Klasse in eine Collection einfügen werden soll)!
 

babuschka

Top Contributor
ja aber bei mir zeigt fehler an. Instanzen können nicht gefunden werden also in diesem fall p1 und p2 wie soll das gehen? Außedem hab ich doch kein set wie soll ich dann get verlangen?
 

KrokoDiehl

Top Contributor
Na das allermeiste hast du ja schon:
Java:
 public static boolean istGleich(Person personObjekt) {               //Uebung4_4
        boolean stimmtnicht=false;
        
        if(?????){   <<----
        }
        return stimmtnicht;
        
 
    }
Und darin musst du nun den vergleich beider Personen implementieren. Und jetzt frag nicht, welche beiden Personen oder wie du an ihre Attribute kommst... ;)
Die Lösung befindet sich sogar schon in diesem Thread.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T OOP StringTokenizer, Zuweisung der einzelnen Attribute Java Basics - Anfänger-Themen 21
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
V wie kann ich in zweidimensionaller Arraylist auf die einzelnen Elemente zugreifen ? Java Basics - Anfänger-Themen 7
A Fragmente eines Strings zu einzelnen int konvertieren Java Basics - Anfänger-Themen 3
J Methoden Einzelnen Wert aus Objekt aus einem Array auslesen und danach sortieren Java Basics - Anfänger-Themen 8
T Initialisierungen der einzelnen Klassen - Objektorientierung Java Basics - Anfänger-Themen 4
X Multi Array zu einzelnen Arrays trennen Java Basics - Anfänger-Themen 7
M Verzeichnis ausgeben mit Unterverzeichnissen und einzelnen Dateien Java Basics - Anfänger-Themen 18
K double-Wert aus einzelnen Ziffern erzeugen Java Basics - Anfänger-Themen 7
B Identifikation eines einzelnen Buttons aus mehreren Buttons per Schleife erzeugten Java Basics - Anfänger-Themen 4
T Einlesen von einzelnen Zeilen Java Basics - Anfänger-Themen 2
F Array - Vorkommen der einzelnen Werte ausgeben Java Basics - Anfänger-Themen 8
G Wie eine Int Zahl in die einzelnen Ziffern zerlegen? Java Basics - Anfänger-Themen 6
F Aktualisieren einer einzelnen Zelle in JTable Java Basics - Anfänger-Themen 2
H Parameterübergabe zwischen einzelnen Funktionen Java Basics - Anfänger-Themen 4
T Standardkonstruktor, Attribute initialisieren Java Basics - Anfänger-Themen 5
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
S Attribute zurücksetzen? Java Basics - Anfänger-Themen 2
K Sichtbarkeit protected: Attribute trotzdem aufrufbar. Java Basics - Anfänger-Themen 4
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
O Attribute die Methoden zählen Java Basics - Anfänger-Themen 5
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
J final attribute erben Java Basics - Anfänger-Themen 2
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
S Objekt-Attribute "variabel" gestalten Java Basics - Anfänger-Themen 10
R Attribute mehrerer Objekte ausgeben Java Basics - Anfänger-Themen 3
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
F Attribute bei Objektorientierter Programmierung Java Basics - Anfänger-Themen 11
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
R Zwei Attribute gleichzeitig ausgeben Java Basics - Anfänger-Themen 12
Q Zugriff auf Attribute Java Basics - Anfänger-Themen 3
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
S Zufallszahl (Statische Attribute und Methoden) Java Basics - Anfänger-Themen 10
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
X XML-Eintrag an Attribute erkennen Java Basics - Anfänger-Themen 2
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
B Alle Attribute von Klasse bekommen und ändern Java Basics - Anfänger-Themen 12
R Objekt erstellen - Attribute mit mehreren Werten Java Basics - Anfänger-Themen 1
T Kann erbende Klasse Attribute der vererbenden Klasse anpassen (int -> float)? Java Basics - Anfänger-Themen 9
dat_vin OOP Hashmap und Attribute Java Basics - Anfänger-Themen 7
C OOP Array Objektverweise und Attribute Java Basics - Anfänger-Themen 5
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
O Unterschiedliche Attribute in Objekklasse? Java Basics - Anfänger-Themen 5
E Attribute von einem Objekt einer anderen Klasse ändern Java Basics - Anfänger-Themen 4
K Durch alle Attribute eines Objektes iterieren Java Basics - Anfänger-Themen 6
F Attribute von Feldinhalten erkennen Java Basics - Anfänger-Themen 6
A Variablen Attribute Java Basics - Anfänger-Themen 8
F konstante/variable Attribute? Java Basics - Anfänger-Themen 3
J Threads Zugriff auf Attribute Java Basics - Anfänger-Themen 16
M Wann statische Methoden/Attribute? Java Basics - Anfänger-Themen 2
ElfterDoktor Einen Objekt Attribute/Parameter geben & Auslesen Java Basics - Anfänger-Themen 4
R Zeigerfehler für Attribute Java Basics - Anfänger-Themen 11
L Vererbung Attributen der Oberklasse Attribute hinzufügen? Java Basics - Anfänger-Themen 3
S Ermitteln und Setzen der Attribute eines Objektes Java Basics - Anfänger-Themen 6
F Im Konstruktor mit Settern auf private Attribute zugreifen - oder nicht? Java Basics - Anfänger-Themen 18
P Zugriff auf Attribute einer Klasse, zu der keine Verbindung besteht Java Basics - Anfänger-Themen 11
V OOP Statische Klassen-Attribute vererben Java Basics - Anfänger-Themen 4
T Attribute eines anderen Objektes überprüfen und danach handeln Java Basics - Anfänger-Themen 7
M static Attribute und Vererbung Java Basics - Anfänger-Themen 11
S Warum sind Attribute der Klasse java.awt.Point public? Java Basics - Anfänger-Themen 3
K OOP Attribute von Klasse in die public class übertragen? Java Basics - Anfänger-Themen 7
E Fehler bei Klassenübergreifende Attribute / Konsturktoren Java Basics - Anfänger-Themen 2
P Attribute von Objekten in Vectoren überprüfen Java Basics - Anfänger-Themen 4
S Attribute darf nur Werte vom Intervall annehmen Java Basics - Anfänger-Themen 5
M Attribute Java Basics - Anfänger-Themen 8
M Attribute und Konstruktor Java Basics - Anfänger-Themen 5
V JNDI / LDAP Attribute eines Benutzers auslesen Java Basics - Anfänger-Themen 1
J Attribute not settable warum ? Java Basics - Anfänger-Themen 6
N finale Attribute in abstrakten Basisklassen Java Basics - Anfänger-Themen 6
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
Q Zugriff auf Attribute einer Unterklasse Java Basics - Anfänger-Themen 7
S OOP Attribute Java Basics - Anfänger-Themen 2
K Klassen Attribute sortieren Java Basics - Anfänger-Themen 10
S Ausgabe bestimmter Attribute Java Basics - Anfänger-Themen 5
L E-Mail Attribute IMAP ändern Java Basics - Anfänger-Themen 4
K Attribute überschreiben! Java Basics - Anfänger-Themen 2
A Stilfrage: statische Methoden und Attribute auf jeden Fall verhindern? Java Basics - Anfänger-Themen 5
dataframe Attribute aus anderen Methoden übernehmen? Java Basics - Anfänger-Themen 14
M Zugriff auf Attribute über Methoden Java Basics - Anfänger-Themen 6
A statische Attribute: Vererbung und Zugriff darauf Java Basics - Anfänger-Themen 15
H Attribute auf Einzigartigkeit prüfen Java Basics - Anfänger-Themen 6
T Was sind Attribute? Java Basics - Anfänger-Themen 9
G Methode um Attribute auszulesen Java Basics - Anfänger-Themen 5
H attribute die zusammengehören Java Basics - Anfänger-Themen 9
G Wie kann ich auf die Attribute einer anderen Klasse zugreife Java Basics - Anfänger-Themen 5
J Auslesen aller Attribute mit JDOM Java Basics - Anfänger-Themen 15
N Unterschied statische Attribute u. Methoden <-> objekt Java Basics - Anfänger-Themen 4
M Attribute werden mit den Startwerten überschrieben. Warum? Java Basics - Anfänger-Themen 12
T Failed to load Main-Class manifest attribute from U.U.jar Java Basics - Anfänger-Themen 3
P Attribute Vererben Java Basics - Anfänger-Themen 2
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
D Session Attribute in JSP ausgeben???? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben