# Problem mit private variablen



## domme1987du (18. Dez 2014)

Hallöchen also ich habe ein kleines Problem, 
es geht um diese Aufgabenstellung:
Implementieren Sie anschließend die Methode ausgebenTag in der Klasse
Attraktion. Diese Methode soll für den gewählten Tag eine Buchungsübersicht für
jede Stunde auf der Konsole ausgeben: einen Punkt für Stunden außerhalb der
Öffnungszeit, einen Bindestrich für Stunden innerhalb der Öffnungszeit ohne gebuchte
Tickets, und ein X für Stunden mit mindestens einer Ticketbuchung. Beispiel:
........---X---XXXX-X...

Der Teilcode sieht so aus


```
public void ausgebenTag(int tag)
    {
    	for(int i=1; i<=24;i++)
    	{
    		if(i<ersterEinlass || i>letzterEinlass)                  //ausserhalb der Öffnugszeiten
    		{
    			System.out.print(".");
    		}
    		else
    		{
// hier soll geprüft werden in welcher stunde eine buchung vorliegt 
    			System.out.print("-");
    		}
    	}
    	System.out.println(" ");
    }

public boolean buchen(Reisegruppe reisegruppe, int tag, int stunde)
    {
    	if(stunde<ersterEinlass || stunde>letzterEinlass) 	//prüfen ob ausserhalb Öffnugszeit
    	{
    		return false;
    	}
    	else												//wenn in Öffnungszeit
    	{
    		return true;
    	}
    }
```

Irgendwie steh ich da gerade ziemlich aufn Schlauch, ich komm einfach nicht an die Variable " stunde".

Weiss nicht vlt hab ich auch grad nen falschen Lösungsweg im Kopf deswegen wollte ich hier mal nachfragen ob mir da jemand helfen könnte .

Lg


----------



## Saheeda (18. Dez 2014)

Meinst du den Parameter in der Methode "buchen"? Die ist nur lokal innerhalb der Methode sichtbar. Möchtest du sie auch in anderen Methoden verwenden, musst du entweder die Variable als Parameter übergeben oder sie global definieren.


----------



## domme1987du (18. Dez 2014)

Ich möchte den Parameter der Methode buchen irgendwie in die Merhode ausgabeTag bekommen oder am besten in der schleife (bei ausgabeTag) einen sprung machen in die Methode buchen damit überprüft werden soll ob i == stunde ist und mit nem if-else sagen ob dann ein "X" (wenn i==stunde(true) ansonsten ein "-" ausgegeben werden soll.

Global kann ich die nicht machen da im UML drin steht das diese private sein muss.
Ich kann das UML auch hochladen , damit es evt verständlicher wird.


kann ich direkt aus der Methode buchen einen parameter übergeben, weil die ist ja bool, also ist der Rückgabewert doch nur true oder false.


----------



## Saheeda (18. Dez 2014)

> kann ich direkt aus der Methode buchen einen parameter übergeben, weil die ist ja bool, also ist der Rückgabewert doch nur true oder false.



Ähm, what?




Du kannst Methoden aus einer anderen Methode heraus aufrufen:


```
public void ausgebenTag(int tag){

[...]

buchen(gruppe, tag, stunde);
[...]
}
```


Privat ist die Sichtbarkeit, global ein Scope.
In diesem Fall ist _isReserverd eine private, globale Variable, _isOpen eine öffentliche globale Variable und day eine lokale.

```
class Kino{
private bool _isReserved;
public bool _isOpen;

public void book(){...}
int day = 1;

}
```


----------

