package diesunddas;

public class Strecke{
	
	enum Einheit{
		m(1),
		km(1e3),
		cm(0.01),
		mm(0.001);
		
		private double faktor;
		
		Einheit(){}
		Einheit(double faktor){ this.faktor = faktor; }
		
		double faktor(){ return faktor; }
	}
	
	double länge;
	Einheit einheit = Einheit.m;

	public Strecke(double länge){
		this.länge = länge;
	}
	
	public Strecke(double länge, Einheit einheit){
		this.länge = länge;
		this.einheit = einheit;
	}
	
	public Strecke plus(Strecke dazu){
		return new Strecke(länge+dazu.länge*dazu.einheit.faktor()/einheit.faktor(), einheit);
	}
	
	@Override
	public String toString(){
		return länge+" "+einheit;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Strecke heimweg = new Strecke(10, Einheit.km);
		Strecke bäcker = new Strecke(420, Einheit.m);
		System.out.println(heimweg);
		System.out.println(bäcker);
		System.out.println(heimweg.plus(bäcker));
		System.out.println(bäcker.plus(heimweg));
	}

}
