/*
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)
Ein Konstruktor wird zur Verlinkung benutzt.

5) 
Alle Zugriffe werden mit set-und get-Methoden gemacht.
*/


public class MainAssoziationUNI_1zuN_3 {
	public static void main(String[] args){
		Fahrer[] dieFahrer = new Fahrer[2];
		dieFahrer[0]=new Fahrer("Maier");
		dieFahrer[1]=new Fahrer("Müller");		

		// Verlinkung: myCar --> dieFahrer		
		Auto myCar = new Auto ("B-KI 11", dieFahrer);
		
		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, Fahrer[] pSeineFahrer){
		kfzZeichen=pKfzZeichen;
		seineFahrer = pSeineFahrer;		
	}
	
	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);
	}
}








