/*
Dies ist ein Demo-Programm für eine längerfristige 
Assoziation mit folgender Eigenschaft:
1)
1 : n (zu einem Auto gehören mehrer Fahrer) 

2)
unidirektional (mit Navigierbarkeit in eine Richtungen)
Auto --> Fahrer

3)
Die Fahrer und das Auto werden in main angelegt, wobei
die Fahrer das Array dieFahrer[] bilden. 

4)
Es gibt nur die Standard-Konstruktoren.

5) 
Alle Zugriffe werden mit set-und get-Methoden gemacht.
*/


public class MainAssoziationUNI_1zuN_2 {
	public static void main(String[] args){
		Fahrer[] dieFahrer = new Fahrer[2];
		dieFahrer[0]=new Fahrer();
		dieFahrer[1]=new Fahrer();
		dieFahrer[0].setName("Maier");
		dieFahrer[1].setName("Müller");		
		
		Auto myCar = new Auto ();
		myCar.setKfzZeichen("B-KI 11");
		
		// Verlinkung: myCar --> dieFahrer		
		myCar.setSeineFahrer(dieFahrer); 
		
		System.out.println("myCar.f[0].name = "+myCar.getFahrer(0).getName());
		System.out.println("myCar.f[1].name = "+myCar.getFahrer(1).getName());		
		
		myCar.getFahrer(0).setName("Aust");
	
		System.out.println("myCar.f[0].name = "+myCar.getFahrer(0).getName());		
	}
}	

class Auto{
	private String kfzZeichen;
	private Fahrer[] seineFahrer;
	
	public void setKfzZeichen(String pKfzZeichen){
		kfzZeichen=pKfzZeichen;		
	}

	public void setSeineFahrer(Fahrer[] pSeineFahrer){
		seineFahrer = pSeineFahrer;
	}
	
	public void setFahrer(int i, Fahrer pDerFahrer){
		seineFahrer[i] = pDerFahrer;
	}
	
	public Fahrer getFahrer(int i){
		return(seineFahrer[i]);
	}
}

class Fahrer{
	private String name;
	
	public void setName(String pName){
		name = pName;
	}
	
	public String getName(){
		return(name);
	}
}








