Wie richten Sie eine bidirektionale Assoziation zwischen zwei Objekten in OO Java

Ich habe einen grundauftrag zu tun, aber bin sehr neu in OOP und mit ihm zu kämpfen. Andere online-Ressourcen ab, um zu meiner Verwirrung.

Bin ich verpflichtet zu:

  1. Schreiben Sie den code für eine Klasse Person. Ein Person-Objekt um die Attribute name, Alter und Adresse.

  2. Schreiben Sie den code für ein Klasse Hund. Ein Hund-Objekt um die Attribute name und Alter.

  3. Geben Sie zusätzliche code in der Mensch und Hund, der Klassen, der erforderlich ist zum einrichten einer bidirektionalen Verknüpfung zwischen einer Person, die Objekt-und ein Hund-Objekt. Ein Person-Objekt fungiert als ein Eigentümer für ein Hund-Objekt, und der Hund-Objekt fungiert als ein Haustier für das Objekt Person.

  4. Ändern Sie Ihre Klasse Person, so dass ein Person-Objekt können Sie sich als Besitzer für bis zu 20 Hund-Objekte.

Offensichtlich ist dies ein sehr einfaches Beispiel.

Meine code so weit:

Person-Klasse :

    public class Person
{
    //instance variables - replace the example below with your own
    private String name;
    private int age;
    private String address;




    /**
     * Constructor for objects of class Person
     */
    public Person()
    {
       this.name = name;
       this.age = age;
       this.address = address;
    }



    //Set Methods: 
    public void setName () {
            this.name = name;
    }


    public void setAge () {
            this.age = age;
    }


    public void setAddress () {
            this.address = address;
    }


    //Get Methods: 
    public String getName () {
            return name;
    }

    public int getAge () {
            return age;
    }

    public String getAddress () {
            return address;
    }
}

Hund Klasse:

    public class Dog
{
    //instance variables - replace the example below with your own
    private String name;
    private int age;



    public Dog()
    {
       this.name = name;
       this.age = age;
    }


    //Set Methods:
    public void setName () {
        this.name = name;
    }

    public void setAge () {
        this.age = age;
    }

    //Get Methods:
    public String getName () {
        return name;
    }

    public int getAge () {
        return age;
    }


}

Main:

public class Main
{
   //Blank 
}

Ich weiß, dieser code ist derzeit nutzlos und nicht alles tun, aber ich bin unsicher, wie 'zuordnen' werden die Objekte & wo es zu tun. Die Zuordnung spec gibt eine person fungiert als "Eigentümer" für den Hund.

Dies ist, wo mein problem liegt. Die Einrichtung der Beziehung zwischen den Objekten.

  • Möchten Sie die Beziehung zu internen (als eine person, hat eine Sammlung von Hunden, die als ein Feld und ein Hund hat einen Besitzer wie ein Feld) oder externe (zum Beispiel eine Karte mit der Beziehung)
  • Ich vermute, die interne wie die spec gibt ich muss
  • "Ändern Sie die Person-Klasse, so dass ein Person-Objekt können Sie sich als Besitzer für bis zu 20 Hund-Objekte."
  • Fügen Sie einfach die Methoden setDog(Hund), in Person, und dann setOwner(Person Besitzer) im Hund. Es ist einfach so 🙂
  • Hollowood-Prinzip 😉
  • kann ein Hund ein Tier für mehr als 1 Person?
  • Ich würde auch ein Factory-Klasse instanziiert Hund(en), Person, legt die Beziehungen über die setter-Aufrufe, und nur dann macht die erstellten Objekte zugänglich für den rest der Anwendung.

InformationsquelleAutor Anon Omus | 2013-11-20
Schreibe einen Kommentar