# 2 Klassen mit einer Klasse verknüpfen



## Exilim1 (4. Sep 2010)

Hallo, ich stehe vor einer kleinen Herausforderung, und zwar wollen wir jetzt im Unterricht uns langsam der projektarbeit in Java widmen. Dazu haben wir folgende Aufgabenstellung bekommen. Es soll eine Klasse "Flasche" eine Klasse "Glas" und eine Klasse "Ausführen" erzeugt werden. Die Klasse "Flasche"  hat bsp. 5 einheiten wein,apfelsaft o.ä. diese 5 einheiten soll die Klasse Ausführen der Klasse Flasche zugewiesen haben. So zu diesem Zeitpunkt hat die Klasse Glas 0 mengenheiten. Es soll nun mit hilfe der Klasse Ausführen 3 megeneinheiten aus der Klasse flasche in die Klasse Glas zugewiesen werden. Danach soll die ganze geschichte in der Konsole ausgegeben werden.
Meine Fragen dazu, wie verbinde ich die verschiedenen Klassen, und weise die entsprechenden Werte zu, das ausgeben bzw. subtrahieren voneinander ist mir klar nur das zuweisen von den Werten und das Verbinden der Klassen untereinander verstehe ich irgendwie nicht. kann mir dazu vielleicht jemand einen ansatz geben, wie ich das ganze umsetzen kann?
Besten Dank


----------



## XHelp (4. Sep 2010)

Also zuweisen machst du mit 
	
	
	
	





```
=
```
 :joke:


> Die Klasse "Flasche" hat bsp. 5 einheiten wein,apfelsaft o.ä. diese 5 einheiten soll die Klasse Ausführen der Klasse Flasche zugewiesen haben


Heißt das *eine* Flasche enthält Wein *und* Apfelsaft etc?
Was hast du denn bis jetzt schon gemacht?


----------



## Exilim1 (4. Sep 2010)

nein die Klasse Flasche enthält nur 5 einheiten von dem einen 

Klasse Einscheken:

```
public class Einschenken
{
    int menge=3;  
    
    
    public  Einschenken()
    {
        int menge=3;
        Flasche new Flasche;
        Glas.glas();
        System.out.println("");
        System.out.println("===============Einschenken==============");
        System.out.println("");
        Flasche.einschenkenflasche(5);
        Glas.einschenkenglas(3);
        
    }
}
```

Klasse Flasche


```
public class Flasche
{
    int wein=5;

    public Flasche()
    {
    }
    
    public void wein()
    {
        System.out.println("Die Weinflasche enthält "+wein+" Einheiten Wein");
    }
    
    public int einschenkenflasche(int menge)
    {
        wein=wein-menge;
        System.out.println("Die Weinflasche enthält "+wein+" Einheiten Wein");
        return wein;
    }
}
```

Klasse Glas

```
public class Glas
{
    int glas=0;    

    public Glas()
    {
    }
    
    public void glas()
    {
        System.out.println("Das Weinglas enthält "+glas+" Einheiten Wein");
    }
    
    public int einschenkenglas(int menge)
    {
        glas=glas+menge;
        System.out.println("Das Weinglas enthält "+glas+" Einheiten Wein");
        return glas;
    }
}
```


----------



## XHelp (4. Sep 2010)

Also wenn du Flaschen von Wein, Apfelsaft etc. haben willst, musst du es natürlich etwas dynamischer machen. Du kannst ja z.B. dem Konstruktor übergeben was die Flasche bzw. Glas enthält.
Deine Einschenken-Klasse würde nicht mal kompilieren.
Wozu gibst du bei einschenkenglas, einschenkenflasche die Werte wieder zurück? Warum keine void-Methoden?
Bei der Einschenken-Klasse kannst du ja eine statische Methode erstellen, die eine Flasche und ein Glas bekommt und mit dennen arbeitet.


----------



## Exilim1 (4. Sep 2010)

Hast du vielleicht nen Code Beispiel für ne bessere umsetzung?


----------



## XHelp (4. Sep 2010)

Sowas wie:

```
public static void einschenken(Flasche f, Glas g) {
  f.wein = f.wein-1;
  g.glas = g.glas+1;
}
```
Aber ich würde an deiner Stelle erstmal die Grundlage anschauen.


----------



## Exilim1 (4. Sep 2010)

Okay, danke


----------

