Assoziation 1:1

Flo2990

Neues Mitglied
Hallo Community,
ich hab hier meine beiden klassen GUI und Steuerung und möchte diese mti einer Bidirektionalen Assoziation verbinden. Ich hatte dass vor über nem jahr mal in der Schule und komm ums Verrecken nicht mehr drauf wies funktioniert. Ich weiss dass innerhalb des Quelltextes ein paar sachen nicht stimmen, dass ist aber egal, alles was ich brauch ist die Assoziation.
Wär nett wenn jemand mal kurz drüber schaut.

Danke

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 15.05.2011
  * @author
  */

public class GUI extends JFrame {
  // Anfang Attribute
  private Steuerung dieSteuerung;
  private JButton sf[][]=new JButton[8][8];
  private Icon black = new ImageIcon( "Pics/black.jpg" );
  private Icon white = new ImageIcon( "Pics/white.jpg" );
  private Icon blue = new ImageIcon( "Pics/blue.jpg" );

  // Ende Attribute



  public GUI(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 600;
    int frameHeight = 600;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    
      for(int i=0;i<=7;i++){
        for(int j=0;j<=7;j++){
          setLayout(null);
          sf[i][j]=new JButton(""+i+" / "+j);
          sf[i][j].setBounds(20+60*i,20+60*j,60,60);
          cp.add(sf[i][j]);
          dieSteuerung.Farbenzuweisung();
        }
      }

    // Anfang Komponenten



    // Ende Komponenten

    setResizable(true);
    setVisible(true);
  }

  // Anfang Methoden








  public void setColor(String pFarbe) {
    sf[i][j].setIcon( pFarbe );
  }

  public static void main(String[] args) {

  }

  // Ende Methoden

}


Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 15.05.2011
  * @author
  */

public class Steuerung {

  // Anfang Attribute
  private Daten dieDaten;
  private GUI dieGUI;
  private int farbe;
  // Ende Attribute

  public Steuerung() {

  }

  // Anfang Methoden
  public void Farbenzuweisung(){
    if(dieDaten.getValue()==0){
      dieGUI.setColor(black);
    } else{
      dieGUI.setColor(white);
    }
  }
  
  // Ende Methoden
}
 

Andi_CH

Top Contributor
Eine 1:1 Beziehung ist eine rein organisiatorische Sache und hat mit Code nicht sehr viel zu tun.
Es heisst einfach dass das Objekt aa der Klasse A genau ein Objekt bb der Klasse B kennt und dass das Objekt bb nur von aa benutzt wird.

In Java implementiert man das am Besten so dass innerhalb von A das zu nutzend B instanziert wird und fertig.

Dein Code ist mir ehrlich gesagt viel zu lang um ihn zu studieren.

Java:
public class B {}

Java:
public class A {
	private B bb;
	public A(){
		bb = new B();
	}
}

und siehe da: A hat genau 1 Objekt der Klasse B und dieses Objekt kann von niemandem sonst verwendet werden, da die Referenz darauf nicht greifbar ist.
 
Zuletzt bearbeitet:

alex_fairytail

Mitglied
Eine 1:1 Beziehung ist eine rein organisiatorische Sache und hat mit Code nicht sehr viel zu tun.
Es heisst einfach dass das Objekt aa der Klasse A genau ein Objekt bb der Klasse B kennt und dass das Objekt bb nur von aa benutzt wird.

In Java implementiert man das am Besten so dass innerhalb von A das zu nutzend B instanziert wird und fertig.

Dein Code ist mir ehrlich gesagt viel zu lang um ihn zu studieren.

Java:
public class B {}

Java:
public class A {
	private B bb;
	public A(){
		bb = new B();
	}
}

und siehe da: A hat genau 1 Objekt der Klasse B und dieses Objekt kann von niemandem sonst verwendet werden, da die Referenz darauf nicht greifbar ist.

Das stimmt so nicht ganz.
Er sprach ja von einer Bidirektionalen Assioziation, beide können also aufeinander zugreifen, was dann etwa so aussieht:

Java:
public class Firma(){
   private Chef bill;
   public Firma(){
      bill = new Chef();
   }
}


Java:
public class Chef(){
   private Firma microsoft;
   public Chef(){
       microsoft = new Firma();
   }
}


1:1 Bidirektional, der Chef hat genau eine Firma und die Firma hat auch nur einen Chef (in dieser Situation).
:)

oder hier noch anhand von deinem Beispiel:

Java:
public class B () {
        private A aa;
	public B(){
		aa = new A();
	}
}

Java:
public class A () {
	private B bb;
	public A(){
		bb = new B();
	}
}

Lg :D
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben