/*
Dies ist ein Demo-Programm für eine längerfristige 
Assoziation mit folgender Eigenschaft:
1)
1 : 1 (zu einem Auto gehört genau 1 Fahrer) 

2)
bidirektional (mit Navigierbarkeit in zwei Richtungen)
Auto <--> Fahrer

3)
Fahrer wird nicht im Konstruktor von Auto angelegt,
sondern in main.

4)
Verlinkung wird mit Hilfe von Methoden gemacht
u.a. einem Konstruktor.

5) Besonderheit:
Die Konstruktoren haben jeweils 2 Parameter

 
*/


public class MainAssoziationBI_1zu1_5 {
	public static void main(String[] args){
		Fahrer myFahrer=null;
		// Verlinkung: myCar --> myFahrer
		Auto myCar =new Auto ("ES LE 40", myFahrer);
		myFahrer = new Fahrer("Maier", myCar);		
		// Verlinkung: myFahrer --> myCar		
		myCar.setFahrer(myFahrer);		
		
		
		System.out.println("Name des Autofahrers = "+myCar.getFahrer().getName());
		System.out.println("KF-Zeichen des Fahrers = "+myFahrer.getAuto().getKfzZeichen());		
	}
}	

class Auto{
	private String kfzZeichen;
	private Fahrer f;
	
	public Auto(String pKfzZeichen, Fahrer pf){
		kfzZeichen=pKfzZeichen;
		f = pf;
	}

	public String getKfzZeichen(){
		return(kfzZeichen);
	}

	public Fahrer getFahrer(){
		return(f);
	}

	public void setFahrer(Fahrer pFahrer){
		f = pFahrer;
	}
}

class Fahrer{
	private String name;
	private Auto a;

	public Fahrer(String pName, Auto pAuto){
		name = pName;
		a = pAuto;
	}
	
	public String getName(){
		return(name);
	}

	public Auto getAuto(){
		return(a);
	}
}





















