# Wo ist der Fehler? :(



## pumice (6. Nov 2009)

Bin im ersten semester 
Habe hier 2 Klassen und eine Mainmethode und die Klasse Farbe übernimmt die wandflaeche nicht aus der Klasse Zimmer 


```
public class Zimmer {
	
	public double breite;
	public double laenge;
	public int fenster;
	public int tueren;
	public static double wandhoehe = 2.3;
	
	Zimmer ( double breite, double laenge, int fenster, int tueren)
	{
		this.breite = breite;
		this.laenge = laenge;
		this.fenster = fenster;
		this.tueren = tueren;
	}
	
	public double getBreite ()
	{
		return breite;
	}
	
	public double getLaenge ()
	{
		return laenge;
	}
	
	public double getFenster ()
	{
		return fenster;
	}
	
	public double getTueren ()
	{
		return tueren;
	}
	
	public double getWandhoehe ()
	{
		return wandhoehe;
	}
	
	public double berechneWandflaeche ()
	{
		double wandflaeche = ((2 * 2.30 * breite + 2 * laenge * 2.30) - (1 * 2 * tueren) - (1.2 * 1 * fenster));
		return wandflaeche;
	}
}


public class Farbe {
	
	private String bezeichnung;
	private double verbrauch;
	private double preis;
	
	Farbe (String bezeichnung, double verbrauch, double preis)
	{
		this.bezeichnung = bezeichnung;
		this.verbrauch = verbrauch;
		this.preis = preis;
	}
	
	public String getBezeichnung ()
	{
		return bezeichnung;
	}
	
	public double berechneVerbrauch ()
	{
		double verbrauch = wandflaeche * verbrauch;
		return verbrauch;
	}
	
	public double berechnePreis ()
	{
		double preis = wandflaeche * preis;
		return preis;
	}
	
}


public class BedarfsUndPreisErmittler {
		
		public static void main(String [] args)
	{
		Zimmer kaisZimmer = new Zimmer (2.0, 3.0, 1, 1);
		Zimmer uschisZimmer = new Zimmer (2.0, 4.0, 3, 1);
		Zimmer helgesZimmer = new Zimmer (1.0, 2.0, 1, 2);
		Farbe rot = new Farbe ("mangentarot", 3.2, 2.30);
		Farbe weiss = new Farbe ("alpina", 0.4, 1.00);
		
		System.out.println("Kais Zimmer");
		System.out.println(kaisZimmer.getBreite());
		System.out.println(kaisZimmer.getLaenge());
		System.out.println(kaisZimmer.getFenster());
		System.out.println(kaisZimmer.getTueren());
		System.out.println(kaisZimmer.berechneWandflaeche());
		System.out.println(rot.getBezeichnung());
		System.out.println(rot.berechneVerbrauch());
		System.out.println(rot.berechnePreis());
		System.out.println(weiss.getBezeichnung());
		System.out.println(weiss.berechneVerbrauch());
		System.out.println(weiss.berechnePreis());
		System.out.println("Uschis Zimmer");
		System.out.println(uschisZimmer.getBreite());
		System.out.println(uschisZimmer.getLaenge());
		System.out.println(uschisZimmer.getFenster());
		System.out.println(uschisZimmer.getTueren());
		System.out.println(uschisZimmer.berechneWandflaeche());
		System.out.println(rot.getBezeichnung());
		System.out.println(rot.berechneVerbrauch());
		System.out.println(weiss.getBezeichnung());
		System.out.println(weiss.berechneVerbrauch());
		System.out.println(weiss.berechnePreis());
		System.out.println("Helges Zimmer");
		System.out.println(helgesZimmer.getBreite());
		System.out.println(helgesZimmer.getLaenge());
		System.out.println(helgesZimmer.getFenster());
		System.out.println(helgesZimmer.getTueren());
		System.out.println(helgesZimmer.berechneWandflaeche());
		System.out.println(rot.getBezeichnung());
		System.out.println(rot.berechneVerbrauch());
		System.out.println(rot.berechnePreis());
		System.out.println(weiss.getBezeichnung());
		System.out.println(weiss.berechneVerbrauch());
		System.out.println(weiss.berechnePreis());
		
	}	
		
}
```

das ganz schön viel aber ich hoffe ihr könnt mir helfen

Noctarius: Bitte Java-Tags nutzen


----------



## André Uhres (6. Nov 2009)

Übergib sie als Parameter:
rot.berechneVerbrauch( kaisZimmer.berechneWandflaeche() )

```
public double berechneVerbrauch(double wandflaeche) {
    return wandflaeche * verbrauch;
}
public double berechnePreis(double wandflaeche) {
    return wandflaeche * preis;
}
```


----------



## pumice (6. Nov 2009)

Danke für die schnelle antwort ja das hat geklappt aber jetzt zeigt der mir nen anderen fehler an 
und zwar das einmal die farbe rot und weiss für kais uschis und helgas zimmer bezogen werden wie mach ich das??


----------



## André Uhres (6. Nov 2009)

pumice hat gesagt.:


> jetzt zeigt der mir nen anderen fehler an und zwar das einmal die farbe rot und weiss für kais uschis und helgas zimmer bezogen werden wie mach ich das??


Du kannst die farben von irgendeinem lieferanten beziehen oder wie meinst du das?


----------



## pumice (6. Nov 2009)

also habe 3 objekte von zimmern.. und die sollen mit 2 verschiedenen objekten von farben bemalt werden oder es soll ausgerechnet wie der verbrauch ist. ich muss jetzt jede farbe einzelt zu den zimmern zuordnen in der main methode
ich weiß nciht wie ich das genau erklären soll


----------



## Landei (6. Nov 2009)

- Gib den Zimmer-Konstruktor noch einen Parameter für ihren Namen mit ("Uschis Zimmer") u.s.w.
- Packe alle Zimmer in ein Array
- Packe alle Farben in ein Array
- nimm Schleifen

(ungetestet)

```
Zimmer[] zimmer = new Zimmer[] {
              new Zimmer (2.0, 3.0, 1, 1, "Kais Zimmer"),
              new Zimmer (2.0, 4.0, 3, 1, "Uschis Zimmer"),
              new Zimmer (1.0, 2.0, 1, 2, "Helges Zimmer")
             };
       Farbe[] farben= new Farbe[] {
               new Farbe ("mangentarot", 3.2, 2.30),
               new Farbe ("alpina", 0.4, 1.00)
       };
       for(z : zimmer) {
               System.out.println(z.name());
               System.out.println(z.getBreite());
               System.out.println(z.getLaenge());
               System.out.println(z.getFenster());
               System.out.println(z.getTueren());
               double wandflaeche = z..berechneWandflaeche();
               System.out.println(wandflaeche);
               for(f : farben) {
                  System.out.println(f.getBezeichnung());
                  double verbrauch =  f.berechneVerbrauch(wandflaeche);
                  System.out.println(verbrauch);
                  System.out.println(f.berechnePreis(verbrauch));
              }
        }
```


----------

