/*
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)
Das Auto wird in main angelegt, aber 
die Fahrer im Konstruktor von Auto.

4)
Ein Konstruktor wird zur Verlinkung benutzt.

5) 
Alle Zugriffe werden mit set-und get-Methoden gemacht.
*/


public class MainAssoziationUNI_1zuN_4 {
	public static void main(String[] args){
		Fahrer[] dieFahrer = new Fahrer[2];
		String[] myNames = {"Maier", "Mueller"};		

		// Verlinkung: myCar --> dieFahrer		
		Auto myCar =new Auto ("b-KI 11", myNames);		
		
		System.out.println("myCar.f[0].name = "+myCar.getFahrer(0).getName());
		System.out.println("myCar.f[1].name = "+myCar.getFahrer(1).getName());		
		
		myCar.setFahrer(0, new Fahrer("Aust"));
	
		System.out.println("myCar.f[0].name = "+myCar.getFahrer(0).getName());		
	}
}	

class Auto{
	private String kfzZeichen;
	private Fahrer[] seineFahrer; 

	public Auto(String pKfzZeichen, String[] pNames){	
		kfzZeichen=pKfzZeichen;
		seineFahrer = new Fahrer[2];
		seineFahrer[0] = new Fahrer(pNames[0]);
		seineFahrer[1] = new Fahrer(pNames[1]);
	}
	
	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 Fahrer(String pName){
		name = pName;
	}
	
	public void setName(String pName){
		name = pName;
	}
	
	public String getName(){
		return(name);
	}
}








